问题标签 [okvs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
25450 浏览

berkeley-db - BerkeleyDB 的替代品?

我正在寻找一个类似 dbm 的库,可以用来代替我目前正在使用的 Berkeley DB。我切换的主要原因是 BDB 的许可费用非常高(开源应用程序免费,但我的雇主出于各种原因不想开源这个特定的应用程序)。

我已经简要地查看了 qdbm,但它看起来并不能满足我的需求——很多键(数百万)和大数据项(> 1-5 兆字节)。在我继续搜索之前,我想我会问,因为那里似乎有很多类似 dbm 的库。

0 投票
2 回答
1181 浏览

python - 在 python 的 berkeley db 中表达多列?

假设我有一个包含用户名、名字、姓氏的简单表。

我如何在 berkeley Db 中表达这一点?

我目前使用 bsddb 作为接口。

干杯。

0 投票
2 回答
4840 浏览

berkeley-db - 优化 Berkeley DB 中的 Put 性能

几天前我刚开始使用 Berkeley DB,所以我想看看在尽可能快地存储数据方面是否有我遗漏的东西。

以下是有关数据的一些信息: - 它以 512 字节块的形式出现 - 块按顺序排列 - 块将按 FIFO 顺序删除 - 如果我由于电源故障而丢失了一些数据,只要整个 db 没有问题就可以了坏了

在阅读了一堆文档之后,似乎 Queue db 正是我想要的。

然而,在尝试了一些测试代码之后,我最快的结果是大约每秒 1MByte,只是循环通过设置了 DB_APPEND 的 DB->put。我也尝试过使用交易和大宗看跌期权,但这两种方式都大大减慢了速度,所以我没有很长时间追求它们。我正在插入在我的飞思卡尔 i.MX35 开发板上的 NANDFlash 芯片上创建的新数据库。

由于我们希望获得至少每秒 2MBytes 的写入速度,我想知道是否有什么我错过的东西可以提高我的速度,因为我知道我的硬件可以写得比这更快。

0 投票
4 回答
5889 浏览

database - 整数键/值可以存储在 LevelDB 中吗?

我搜索了支持整数键和整数值的键值存储。LevelDB 似乎是一个不错的选择,但我找不到任何关于是否支持整数值/键的信息

0 投票
2 回答
3648 浏览

transactions - 当谈到数据库系统时,事务层是由什么构成的?

例如,LevelDB不支持多语句事务。我在某处读到您必须在“事务层”中处理这些问题。

这个层必须做什么才能将事务支持添加到不支持事务的较低级别的库中?

0 投票
3 回答
4213 浏览

leveldb - 为什么 LevelDB 需要两个以上的级别?

我认为只有两个级别(级别 0 和级别 1)是可以的,为什么 LevelDB 需要级别 2、级别 3 等等?

0 投票
4 回答
4185 浏览

nosql - 在键值数据库中存储列表

我搜索在键值数据库中存储与键关联的列表的最佳方法(如berkleydbleveldb

例如:我有用户和用户之间的订单我想为每个用户存储订单 ID 列表,以便通过范围选择快速访问(用于分页)

如何存储这个结构?

我不想为每个用户以可序列化的格式存储它:

因为列表可能很长

我考虑为每个用户使用单独的数据库文件,并将商店订单 ID 作为其中的键,但这并不能解决范围选择问题。如果我想获取具有范围的用户 ID[5000:5050]怎么办?

我知道,但对诸如orredis之类的键值实现感兴趣。berkleydbleveldb

0 投票
1 回答
3280 浏览

file - 了解 KeyValue 嵌入式数据存储与文件系统

我有一个关于 FileSystem 使用的基本问题,我想使用嵌入式 KeyValue 存储,它非常面向写入。(持久)假设我的值大小是 a) 10 K b) 1 M 并且读取和更新的数量相等

我不能简单地创建包含值和名称的文件作为键。

不会像使用 LevelDB 或 RocksDB 那样的 KeyValue 存储一样快。

谁能帮我理解。

0 投票
1 回答
2848 浏览

lmdb - LMDB的内部设计有什么特别之处?

内存中 B-Tree(例如 google btree)和 LMDB 的某些 C++ 实现(不考虑 LMDB 的所有功能,例如事务、隔离、共享访问等)之间的性能差异(读/写)是什么? .)?

0 投票
1 回答
575 浏览

fuzzy-search - 如何在有序键值存储中进行大于内存字典的模糊字符串匹配?

我正在寻找一种算法和存储模式来对大于内存的字典进行字符串匹配。

受https://swtch.com/~rsc/regexp/regexp4.html启发,我最初的尝试是存储字典中每个单词的三元组,例如在索引时将单词拆分为apple$apapp和。所有这些三元组都与它们来自的单词相关联。pplplele$

然后我查询时间,我对必须匹配的输入字符串做同样的事情。我在数据库中查找每个三元组,并将候选词存储在与其中匹配三元组数量相关的映射中。然后,我继续计算每个候选人之间的 levenshtein 距离并应用以下公式:

这种方法有两个问题,首先候选选择太宽泛。其次,levenshtein 距离太慢而无法计算。

修复第一个,可能会使第二个无法优化。

我想到了另一种方法,在索引时,我将存储单词(可能与频率相关),而不是存储三元组。在查询时,我可以query使用 levenshtein 和频率查找字符串的连续前缀和分数。

特别是,我不是在寻找一种算法,它可以为我提供距离为 1、2 等的字符串......我只想从字典中获得一个或多或少相关单词的分页列表。实际选择由用户进行。

此外,它必须可以用有序的键值存储来表示它,如rocksdb 或wiredtiger。