oracle索引
作用
當表數據量很大的時候,進行查詢操作時I/O開銷會很大,此時可以考慮建立索引減小系統開銷.
建立索引注意點
1.索引應該建立在where語句使用頻率高的列上
2.索引建立在經常進行排序的列上,可加快排序速度
3.索引使用的列個數不是越多越好,列的個數會影響insert和delete操作速度
4.在建立索引時,oracle會將相應的列數據添加到索引塊,此時要設置PCTFREE參數(如果表上insert操作會很頻繁的話,則參數值要大一些)
5.表和索引在同一表空間可以簡化表空間管理,在不同表空間可以提高訪問性能
6.在數據量大的表上建立索引時,使用nologging選項可以節省重做日志空間,降低索引建立時間,提高索引并行建立性能.
7.數據量小的表不用建立索引
8.將索引建立在連接列上可以提高多表聯合查詢的性能
創建索引
建立B樹索引(常用的,默認的索引建立方式)
Create?index?索引名?
On?表名(列名)
Pctfree?大小 --指定預留空間大小(為insert操作預留的空間)
Tablespace?表空間名;
他的索引查詢實現機制可以參照B-樹
建立位圖索引(當列基數小于1%時使用)
Create?bitmap?index?索引名?
On?表名
Tablespace?表空間名;
列基數:列可取值個數/數據行數
建立反向鍵索引
Create?index?索引名
On?表名(列名)?reverse
Tablespace?表空間名;?
如果已經建立默認索引,想重新建立反向索引
alter index 索引名
rebuilder?reverse;
存儲結構依然使用的是B-樹,不過將鍵值順序顛倒存儲(如簡直是1234則存儲時以4321為鍵值)
建立基于函數的索引
Create?index?索引名
On?表名(函數名(列名));
轉載于:https://www.cnblogs.com/JavaTWW/p/4948118.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
- 上一篇: 国内大公司的开源项目( 阿里 腾讯 百度
- 下一篇: 《从零开始学Swift》学习笔记(Day