Tim*_*Tim 0 postgresql bitmap-index
PostgreSQL 什么时候自动为表创建位图索引?
我从PostgreSQL 的文档中看到了以下示例,想知道为什么更改 WHERE 中的值会有所不同?谢谢。
EXPLAIN SELECT * FROM tenk1 WHERE unique1 < 7000;
QUERY PLAN
------------------------------------------------------------
Seq Scan on tenk1 (cost=0.00..483.00 rows=7001 width=244)
Filter: (unique1 < 7000)
Run Code Online (Sandbox Code Playgroud)
和
EXPLAIN SELECT * FROM tenk1 WHERE unique1 < 100;
QUERY PLAN
------------------------------------------------------------------------------
Bitmap Heap Scan on tenk1 (cost=5.07..229.20 rows=101 width=244)
Recheck Cond: (unique1 < 100)
-> Bitmap Index Scan on tenk1_unique1 (cost=0.00..5.04 rows=101
width=0)
Index Cond: (unique1 < 100)
Run Code Online (Sandbox Code Playgroud)
Postgres 没有“位图索引”。
您看到的是在扫描索引时使用位图的“索引扫描”。
普通索引扫描一次从索引中获取一个元组指针,并立即访问表中的该元组。位图扫描一次性从索引中获取所有元组指针,使用内存中的“位图”数据结构对它们进行排序,然后以物理元组位置顺序访问表元组。
另请参阅此问题https://dba.stackexchange.com/questions/119386以获得更详细的解释。
| 归档时间: |
|
| 查看次数: |
720 次 |
| 最近记录: |