【TUNE_ORACLE】Oracle索引設計思想(一)索引片和匹配列概述
索引片和匹配列
先放圖:
注:如上圖所示,給student表的id列建立一個索引,並且查詢id在11-20區間的所有值(實際表中只有三個匹配的值)。
關於索引片的概念,使用廣泛的描述是定義索引 匹配列的數量,如上圖就只有id這一個匹配列,值的範圍在11-20之間,因此索引片的大小也就確定了。
索引片(黃色區域)掃描方式是緊挨著順序掃描的,但是索引指標對應的表資料的順序很大機率卻是亂序的,而訪問路徑的成本很大程度上是根據索引片的“厚度”(厚度就是謂詞表示式確定的值的範圍)決定的,所以索引片越厚,掃描的索引頁就越多,需要處理的索引記錄也就越多,開銷也就越大,而其中最大的開銷來自於回表的同步讀操作,如上圖的索引行的值在11-20區間,相應的錶行會透過同步讀的方式從表中讀取。
假設where子句有第二個有索引的列,如果這兩列的關聯性越差(對於“關聯性”,就是隻用知道A列的值就能確定出B列的值,舉個極端的例子就是A列的值全部一樣,B列的值也全部一樣,於是如果知道任意A列的值,B列的值就不用查就知道了,就表示A列和B列強關聯,所以關聯性越強,資料的重複率越高),過濾性就越強,那麼這兩個列能夠一起定義的索引片也就越“薄”,對錶的同步讀次數也就越少,開銷就越小。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69992972/viewspace-2758230/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【TUNE_ORACLE】Oracle索引設計思想(二)索引過濾列概述Oracle索引
- 【TUNE_ORACLE】Oracle索引設計思想(三)過濾因子概述與計算Oracle索引
- 【TUNE_ORACLE】Oracle索引設計思想(四)三星級索引Oracle索引
- 【TUNE_ORACLE】檢視錶,列和索引的統計資訊SQL參考Oracle索引SQL
- ORACLE索引概述Oracle索引
- 【TUNE_ORACLE】索引定期重建的利與弊Oracle索引
- 索引與null(一):單列索引索引Null
- Oracle索引規劃設計Oracle索引
- 【TUNE_ORACLE】列出SQL謂詞中需要建立索引的列SQL參考OracleSQL索引
- MongoDB索引概述MongoDB索引
- 認識SQLServer索引以及單列索引和多列索引的不同SQLServer索引
- 【TUNE_ORACLE】你建立的索引為什麼不工作了?(一)Oracle索引
- SQL Server 列儲存索引 第一篇:概述SQLServer索引
- Oracle全域性索引和本地索引Oracle索引
- Oracle 索引和執行計劃Oracle索引
- 資料庫索引設計與優化讀書筆記--《一》概述資料庫索引優化筆記
- MySQL 唯一索引和普通索引MySql索引
- LSM樹由來、設計思想以及應用到HBase的索引索引
- 【TUNE_ORACLE】Oracle Hint之常用Hint功能概述(一)Oracle
- 索引高度和索引段大小計算索引
- MySQL單列索引和組合索引的區別MySql索引
- 【索引】Oracle之不可見索引和虛擬索引的比對索引Oracle
- [轉]Oracle分割槽索引--本地索引和全域性索引比較Oracle索引
- Oracle分割槽索引--本地索引和全域性索引比較(轉)Oracle索引
- 【索引】oracle查詢使用索引和不使用索引的比較索引Oracle
- Oracle與GreatSQL差異:更改唯一索引列OracleSQL索引
- oracle重建索引(一)Oracle索引
- 【TUNE_ORACLE】檢視索引的叢集因子SQL參考Oracle索引SQL
- 【TUNE_ORACLE】列出索引被哪些SQL引用的SQL參考Oracle索引SQL
- mysql索引設計MySql索引
- MySQL通過通用列索引來提供一個JSON列索引MySql索引JSON
- (7)mysql 索引的設計和使用MySql索引
- oracle 索引和不走索引的幾種形式Oracle索引
- SQL Server 索引和表體系結構(包含列索引)SQLServer索引
- oracle 表分析和索引Oracle索引
- 索引@oracle索引技術索引Oracle
- 【TUNE_ORACLE】你建立的索引為什麼不工作了?(三)Oracle索引
- 【TUNE_ORACLE】你建立的索引為什麼不工作了?(二)Oracle索引