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