是否有实现随机访问的数据库引擎



by Random Access i 表示选择一个随机记录,
Random Access是能够在相同时间内获取所有记录,
与从数组中获取值的方式相同。
来自维基百科:http://en.wikipedia.org/wiki/Random_access

我的目的是存储一个非常大的字符串数组,一个太大的内存。
但是仍然可以随机访问数组。

我通常使用MySQL,但它似乎只有B-Tree和Hash索引类型。

我不明白为什么不可能实现这样的事情。
索引将像在数组中一样,从0开始递增1。

我想简单地通过索引获取字符串,而不是根据字符串获取索引。目标是提高性能。我也不能控制字符串的顺序将被访问,它将是一个远程数据库服务器,它将不断地从客户端并返回该索引的字符串

有解决方案吗?

p。s我不认为这是一个复制的随机访问容器,不适合内存?
因为在这个问题中他有其他要求除了随机访问

根据您的定义,如果您只是使用SSD来存储数据,它将允许您所谓的随机访问(即跨数据集的均匀访问速度)。顺序访问比随机访问更便宜的事实是,顺序访问磁盘比随机访问快得多(顺便说一句,任何数据库都试图最好地弥补这一点)。

也就是说,即使是RAM访问也不是统一的,因为顺序访问由于缓存和NUMA而更快。所以无论如何,统一访问都是一种幻觉,这就引出了一个问题,为什么你一开始就坚持要拥有它。也就是说,当使用慢速随机访问时,你认为会出错的地方-对于你的用例来说,它可能仍然足够快。

你说的是常数时间,但你提到了一个唯一的递增主键。

除非这样的键是无间隙的,否则你不能把它用作偏移量,所以你仍然需要某种结构来查找实际的偏移量。

通过偏移量查找记录通常不是特别有用,因为您通常希望通过一些更友好的方法查找它,这些方法总是涉及索引。在最坏的情况下,搜索一个b树索引是O(log n),这是相当不错的。

假设你有一个字符串数组-将它存储在一个固定长度记录的磁盘文件中,并使用文件系统查找所需的偏移量

最新更新