查看: 390|回復: 6

postgres會自動把b樹索引當成位圖索引?

[復制鏈接]
論壇徽章:
403
紫蛋頭
日期:2012-05-21 10:19:41迷宮蛋
日期:2012-06-06 16:02:49奧運會紀念徽章:足球
日期:2012-06-29 15:30:06奧運會紀念徽章:排球
日期:2012-07-10 21:24:24鮮花蛋
日期:2012-07-16 15:24:59奧運會紀念徽章:拳擊
日期:2012-08-07 10:54:50奧運會紀念徽章:羽毛球
日期:2012-08-21 15:55:33奧運會紀念徽章:蹦床
日期:2012-08-21 21:09:51奧運會紀念徽章:籃球
日期:2012-08-24 10:29:11奧運會紀念徽章:體操
日期:2012-09-07 16:40:00
跳轉到指定樓層
1#
發表于 2020-7-8 22:30 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
create index test_sheng_idx on test_shard_xiaoqu2(sheng);

test=> \d test_shard_xiaoqu2
   數據表 "public.test_shard_xiaoqu2"
  欄位  |         類型          | 修飾詞
--------+-----------------------+--------
id     | bigint                | 非空
sheng  | integer               |
xiaoqu | bigint                | 非空
hu     | bigint                | 非空
ren    | bigint                | 非空
name   | character varying(30) | 非空
v1     | integer               | 非空
v2     | integer               | 非空
v3     | integer               | 非空
索引:
    "test_shard_xiaoqu2_pkey" PRIMARY KEY, btree (id, xiaoqu)
    "test_sheng_idx" btree (sheng)


test=> explain select sum(v1) from test_shard_xiaoqu2 where sheng=37 or sheng=41;
                                             QUERY PLAN
-----------------------------------------------------------------------------------------------------
Finalize Aggregate  (cost=109.81..109.82 rows=1 width=8)
   ->  Remote Subquery Scan on all (dn0001,dn0002)  (cost=109.80..109.81 rows=1 width=0)
         ->  Partial Aggregate  (cost=9.80..9.81 rows=1 width=8)
               ->  Bitmap Heap Scan on test_shard_xiaoqu2  (cost=4.27..9.80 rows=4 width=4)
                     Recheck Cond: ((sheng = 37) OR (sheng = 41))
                     ->  BitmapOr  (cost=4.27..4.27 rows=4 width=0)
                           ->  Bitmap Index Scan on test_sheng_idx  (cost=0.00..2.13 rows=2 width=0)
                                 Index Cond: (sheng = 37)
                           ->  Bitmap Index Scan on test_sheng_idx  (cost=0.00..2.13 rows=2 width=0)
                                 Index Cond: (sheng = 41)
(10 行記錄)


論壇徽章:
527
奧運會紀念徽章:壘球
日期:2008-09-15 01:28:12生肖徽章2007版:雞
日期:2008-11-17 23:40:58生肖徽章2007版:馬
日期:2008-11-18 05:09:48數據庫板塊每日發貼之星
日期:2008-11-29 01:01:02數據庫板塊每日發貼之星
日期:2008-12-05 01:01:03生肖徽章2007版:虎
日期:2008-12-10 07:47:462009新春紀念徽章
日期:2009-01-04 14:52:28數據庫板塊每日發貼之星
日期:2009-02-08 01:01:03生肖徽章2007版:蛇
日期:2009-03-09 22:18:532009日食紀念
日期:2009-07-22 09:30:00
2#
發表于 2020-7-8 22:57 | 只看該作者

使用道具 舉報

回復
論壇徽章:
403
紫蛋頭
日期:2012-05-21 10:19:41迷宮蛋
日期:2012-06-06 16:02:49奧運會紀念徽章:足球
日期:2012-06-29 15:30:06奧運會紀念徽章:排球
日期:2012-07-10 21:24:24鮮花蛋
日期:2012-07-16 15:24:59奧運會紀念徽章:拳擊
日期:2012-08-07 10:54:50奧運會紀念徽章:羽毛球
日期:2012-08-21 15:55:33奧運會紀念徽章:蹦床
日期:2012-08-21 21:09:51奧運會紀念徽章:籃球
日期:2012-08-24 10:29:11奧運會紀念徽章:體操
日期:2012-09-07 16:40:00
3#
 樓主| 發表于 2020-7-8 23:16 | 只看該作者
oracle的例子里
c1原來就是bitmap 索引

使用道具 舉報

回復
論壇徽章:
20
2010年世界杯參賽球隊:韓國
日期:2009-12-20 20:11:33沸羊羊
日期:2015-03-26 14:41:40暖羊羊
日期:2015-06-15 10:03:48天枰座
日期:2015-07-18 17:23:54托尼托尼·喬巴
日期:2017-01-25 09:38:19秀才
日期:2017-03-02 10:30:14秀才
日期:2017-03-02 10:30:35秀才
日期:2017-06-29 10:16:48技術圖書徽章
日期:2017-07-11 09:10:262015年新春福章
日期:2015-03-06 11:57:31
4#
發表于 2020-7-9 09:57 | 只看該作者
The reason for using two plan levels is that the upper plan node sorts the row locations identified by the index into physical order before reading them, to minimize the cost of separate fetches. The “bitmap” mentioned in the node names is the mechanism that does the sorting.

使用道具 舉報

回復
論壇徽章:
527
奧運會紀念徽章:壘球
日期:2008-09-15 01:28:12生肖徽章2007版:雞
日期:2008-11-17 23:40:58生肖徽章2007版:馬
日期:2008-11-18 05:09:48數據庫板塊每日發貼之星
日期:2008-11-29 01:01:02數據庫板塊每日發貼之星
日期:2008-12-05 01:01:03生肖徽章2007版:虎
日期:2008-12-10 07:47:462009新春紀念徽章
日期:2009-01-04 14:52:28數據庫板塊每日發貼之星
日期:2009-02-08 01:01:03生肖徽章2007版:蛇
日期:2009-03-09 22:18:532009日食紀念
日期:2009-07-22 09:30:00
5#
發表于 2020-7-9 21:04 | 只看該作者
〇〇 發表于 2020-7-8 23:16
oracle的例子里c1原來就是bitmap 索引

下面這個例子就沒有BITMAP索引:
http://www.orafaq.com/forum/t/63051/

使用道具 舉報

回復
論壇徽章:
527
奧運會紀念徽章:壘球
日期:2008-09-15 01:28:12生肖徽章2007版:雞
日期:2008-11-17 23:40:58生肖徽章2007版:馬
日期:2008-11-18 05:09:48數據庫板塊每日發貼之星
日期:2008-11-29 01:01:02數據庫板塊每日發貼之星
日期:2008-12-05 01:01:03生肖徽章2007版:虎
日期:2008-12-10 07:47:462009新春紀念徽章
日期:2009-01-04 14:52:28數據庫板塊每日發貼之星
日期:2009-02-08 01:01:03生肖徽章2007版:蛇
日期:2009-03-09 22:18:532009日食紀念
日期:2009-07-22 09:30:00
6#
發表于 2020-7-9 21:06 | 只看該作者
9i引入了一個隱含參數 _b_tree_bitmap_plans

http://www.dba-oracle.com/t_bitmap_conversion_to_rowid.htm

Bitmap conversion to ROWIDS does not require bitmap indexes, and it's sometimes found in cases of SQL with complex WHERE clause conditions.

使用道具 舉報

回復
論壇徽章:
403
紫蛋頭
日期:2012-05-21 10:19:41迷宮蛋
日期:2012-06-06 16:02:49奧運會紀念徽章:足球
日期:2012-06-29 15:30:06奧運會紀念徽章:排球
日期:2012-07-10 21:24:24鮮花蛋
日期:2012-07-16 15:24:59奧運會紀念徽章:拳擊
日期:2012-08-07 10:54:50奧運會紀念徽章:羽毛球
日期:2012-08-21 15:55:33奧運會紀念徽章:蹦床
日期:2012-08-21 21:09:51奧運會紀念徽章:籃球
日期:2012-08-24 10:29:11奧運會紀念徽章:體操
日期:2012-09-07 16:40:00
7#
 樓主| 發表于 2020-7-9 22:33 | 只看該作者
學習了

使用道具 舉報

回復

您需要登錄后才可以回帖 登錄 | 注冊

本版積分規則 發表回復

TOP技術積分榜 社區積分榜 徽章 團隊 統計 知識索引樹 積分競拍 文本模式 幫助
  ITPUB首頁 | ITPUB論壇 | 數據庫技術 | 企業信息化 | 開發技術 | 微軟技術 | 軟件工程與項目管理 | IBM技術園地 | 行業縱向討論 | IT招聘 | IT文檔
  ChinaUnix | ChinaUnix博客 | ChinaUnix論壇
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓優訊信息技術有限公司版權所有 聯系我們 
京ICP備09055130號-4  北京市公安局海淀分局網監中心備案編號:11010802021510 廣播電視節目制作經營許可證:編號(京)字第1149號
  
快速回復 返回頂部 返回列表
30岁的男人干啥赚钱快赚钱多 东方6十1基本走势图 福建快三形态跨度走势图 台灣股票融资利率 江西快乐十一选五开奖结果 排列七开奖体彩 排三试机号最近100期 上海快三奖金怎么算 福建十一选五任选推荐 怎样炒股赚钱 今天25选5开奖视频