PostgreSQL 9.4
我刚接触到称为Bitmap Index Scan
的节点和所谓的底层位图数据结构的概念,这在此帖子中提到。据我所知,PostgreSQL
不支持创建位图索引。
问题:那么,每当我们需要使用位图数据结构来执行Bitmap Index Scan
时,我们需要首先构建它,还是PostgreSQL
在构建btree
索引时自动生成,并在表更改时每次重建?
PostgreSQL 9.4
我刚接触到称为Bitmap Index Scan
的节点和所谓的底层位图数据结构的概念,这在此帖子中提到。据我所知,PostgreSQL
不支持创建位图索引。
问题:那么,每当我们需要使用位图数据结构来执行Bitmap Index Scan
时,我们需要首先构建它,还是PostgreSQL
在构建btree
索引时自动生成,并在表更改时每次重建?
x=1 and y=2
。您在 x
和 y
上有B-tree索引。PostgreSQL不会将x
和y
组合成一个位图然后搜索该位图。它扫描索引x
以获取所有具有x=1
的页面地址,并生成可能包含x=1
的页面的位图。然后,它扫描y
以查找可能等于2
的页面地址,并从中生成位图。然后,它进行AND运算以查找可能同时为x=1
和y=2
的页面。最后,它扫描表本身,仅读取可能包含候选值的页面,读取每个页面并仅保留其中x=1 and y=2
的行。