組合索引的選擇原則
表上的索引是根據什麼建立的,特別是組合索引,有多個的時候優化器又怎麼選擇使用哪個呢,
今天做個試驗驗證下
新建這個表testindex
表結構
Name Type Nullable Default Comments
---------- ------------- -------- ------- --------
CREATETIME DATE Y
LOC VARCHAR2(100) Y
STATUS VARCHAR2(20) Y
COL1 VARCHAR2(10) Y
testindex上只有兩個索引
right1 loc,createtime,status
right2 createtime,loc,status
收集表統計資訊
BEGIN
DBMS_STATS.GATHER_TABLE_STATS(ownname => 'TEST',
tabname => 'TESTINDEX',
estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
method_opt => 'for all columns size skewonly',
cascade=>TRUE
);
END;
收集統計資訊可參考
http://blog.csdn.net/robinson1988/article/details/5329522
根據條件取值範圍不同執行sql
Select *
From testindex
Where CREATETIME = :1
And loc > :3
And status =:4
走createtime,loc,status索引
Select *
From testindex
Where CREATETIME > :1
And loc = :3
And status =:4
走loc,createtime,status索引
說明選擇組合索引時根據查詢條件判斷,取值越精準,範圍越小的欄位createtime/loc放前面的索引越優先被選擇
這裡收集統計資訊還是很必要的,上面這個選擇索引的規則和直方圖,是否有其他索引關係應該不大
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/750077/viewspace-2141998/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 索引的選擇原則索引
- MySQL組合索引和最左匹配原則MySql索引
- MySQL學習筆記:組合索引-最左原則MySql筆記索引
- mysql聯合索引的選擇性MySql索引
- 聯合索引的最左字首匹配原則索引
- 框架選擇的7個原則框架
- MySQL索引選擇及規則整理MySql索引
- 選擇合適的伺服器,可以遵循這5個原則伺服器
- Mysql中聯合索引的最左匹配原則MySql索引
- 組合使用css選擇器CSS
- 兩列複合索引中(交換索引中列的順序),選索引的原則是?因為索引名字ascii碼小?索引ASCII
- 對線面試官:Mysql組合索引的生效規則面試MySql索引
- 六 :CARP(組合複用原則)
- mysql的組合索引MySql索引
- SEO策略之關鍵詞選擇的原則
- MySQL索引(二):建索引的原則MySql索引
- Oracle建立索引選擇合適的可選項及效率問題Oracle索引
- 聯合索引和多個單列索引使用中的索引命中情況及索引建立原則索引
- 分享選擇線上教育平臺的幾個原則
- 保健品選擇與服用的哲學原則
- 索引與null(二):組合索引索引Null
- mysql組合索引,abc索引命中MySql索引
- MySQL索引建立原則MySql索引
- 資料庫入門之RDS選擇原則資料庫
- MySQL 索引的設計原則MySql索引
- 企業選擇ERP系統所遵循的原則
- 如何給玩家“有意義的選擇”? “選項”設計的3條原則
- MySQL字首索引和索引選擇性MySql索引
- 資料庫建立索引的原則資料庫索引
- 索引最左匹配原則索引
- mysql 索引設計原則MySql索引
- MySQL單列索引和組合索引的區別MySql索引
- Mysql索引的使用-組合索引+跳躍條件MySql索引
- MySQL 組合索引不生效MySql索引
- ORACLE 組合索引 使用分析Oracle索引
- Elasticsearch 中為什麼選擇倒排索引而不選擇 B 樹索引Elasticsearch索引
- 企業選擇ERP軟體的三大原則(轉)
- 選擇ERP系統整合器的4R原則(轉)