Database 专门用于位图索引的硬件?

Database 专门用于位图索引的硬件?,database,hardware,bitmap,indexing,artificial-intelligence,Database,Hardware,Bitmap,Indexing,Artificial Intelligence,这只是出于好奇的问题。假设您有一个包含1m行的数据库表,并且您想要经常进行查询,例如查找男性或女性、美国或非美国、选民或非选民等,为表定义位图索引显然非常有效,其中每个位表示一个或多个条件 但是,要执行查询,您仍然必须(可能)扫描所有执行位操作的索引,并选择匹配的行 我的问题是,是否存在某种位图优化存储,以便在硬件中预先创建位“通道”?我正在设想一种类似于编织针的东西,从旧的图书馆目录系统中取出穿孔卡片。换句话说,芯片可以通过电子方式拉出匹配的行,而不是逐行遍历内存位置,因为每个位通道都有硬件连

这只是出于好奇的问题。假设您有一个包含1m行的数据库表,并且您想要经常进行查询,例如查找男性或女性、美国或非美国、选民或非选民等,为表定义位图索引显然非常有效,其中每个位表示一个或多个条件

但是,要执行查询,您仍然必须(可能)扫描所有执行位操作的索引,并选择匹配的行

我的问题是,是否存在某种位图优化存储,以便在硬件中预先创建位“通道”?我正在设想一种类似于编织针的东西,从旧的图书馆目录系统中取出穿孔卡片。换句话说,芯片可以通过电子方式拉出匹配的行,而不是逐行遍历内存位置,因为每个位通道都有硬件连接?我觉得大脑一定是这样工作的。如果我想到“所有蓝色物体”,然后把它限制在“所有蓝色长物体”和“所有蓝色长重物体”上,我的大脑会毫不费力地做到这一点,我确信它不会每次都扫描我知道的所有物体。似乎有一些神经元为不同维度的快速检索提供了途径。我只是想知道在硬件世界里有没有类似的东西


谢谢

您当然可以连接一些逻辑来执行此操作(例如使用),但您需要大量的逻辑元素和连接,这使得为大型数据库构建此类电路的成本可能很高

例如,必须将匹配逻辑(是否选择该位?所需值是多少?)构建到每个“行”中,为每行提供一个信号(已选择/未选择)

然后,您将拥有一个具有一百万条输出线(告诉您选择了哪些记录)的逻辑电路,您可能在某个时候无论如何都必须“序列化”,例如,当您与计算机内的PCI总线接口时(即,首先传输记录0的结果,然后传输记录1等,或者传输所选记录的编号)


由于现代CPU中的逐位运算速度很快(对于诸如逐位
和“xor”等逻辑运算,应该只需要一个时钟周期),与优化的软件相比,使用这样的定制电路可能收获不多(更不用说“硬件”开发和测试工作)除非你有一个非常特殊的用例。

为什么要发明一些已经存在的东西


非常有趣。谢谢你的回答。是的,这是有道理的,成本/收益可能没有道理…啊-这正是我想知道的事情-谢谢!看起来我提议重新发明轮子:-)