資料庫的部分索引
書接上回上次說到key_len的長度。我們假設有一個表50個欄位,有很多資料,大約有100G吧。我們理想化一點,每個欄位一樣大小。那麼在其中一列上建立索引,那麼執行select column from table 這樣的情況如圖1
圖1
不用會表,索引覆蓋。那麼這樣的話基於我們的假設,這樣其實只查了1/50的總表,也就是100G的1/50,那麼就是2G。所以說即使全索引掃描也是比全錶快50倍。因為只查這個欄位等於這個欄位類比成為一個大表的小表。
那麼請看我圖2。特點是a和b兩列資料一樣,而且只有大約前幾位不一樣,後面都一樣的特殊場景。
圖2
然後給a和b分別建立索引。如圖3.可能t2索引這樣的寫法大家覺得有點非主流。對就是不一樣。他意思是隻為這個欄位前3個字元建立索引。為什麼?因為後面的一樣,沒必要去浪費這些儲存了。
圖3
然後我們看看結果,如圖4.透過上一篇的key_len的知識大家應該知道這個是怎麼算的了。 可以看到部分索引的key_len是全欄位索引的1/3左右。那麼,繼續我們剛才說的。如果我們假設有一個表50個欄位,每個欄位大小一樣,查一個欄位相當於一個表的1/50.那麼這樣的部分索引等於又在1/50的基礎上繼續縮小,那麼又會得到更大的提升。
圖4
不過場景使用也有條件,所以知道部分索引的人不多。有條件的可以用用。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/637517/viewspace-2931642/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql資料庫的索引MySql資料庫索引
- 資料庫索引資料庫索引
- Oracle 對某列的部分資料建立索引Oracle索引
- 僅對部分資料構建索引索引
- 資料庫索引的工作原理資料庫索引
- 資料庫——對索引的理解資料庫索引
- indexedDB 資料庫 索引Index資料庫索引
- 資料庫索引原理資料庫索引
- [資料庫]索引失效資料庫索引
- 【Mysql】資料庫索引,百萬資料測試索引效果MySql資料庫索引
- 武林內功,資料庫的索引資料庫索引
- SAP中的資料庫表索引資料庫索引
- 資料庫索引背後的資料結構資料庫索引資料結構
- MySQL資料庫之索引MySql資料庫索引
- 概覽資料庫索引資料庫索引
- 玩轉資料庫索引資料庫索引
- 資料庫索引層級資料庫索引
- 資料庫之建立索引資料庫索引
- 資料庫系列:字首索引和索引長度的取捨資料庫索引
- flask框架資料庫部分(四)Flask框架資料庫
- MySQL資料庫索引簡介MySql資料庫索引
- 資料庫索引選擇策略資料庫索引
- mongodb資料庫如何建立索引?MongoDB資料庫索引
- 將資料庫中資料匯入至solr索引庫資料庫Solr索引
- 資料庫表的唯一索引問題資料庫索引
- 你真的會使用資料庫的索引嗎?資料庫索引
- 資料庫查詢和資料庫(MySQL)索引的最佳化建議資料庫MySql索引
- GBase 如何批量清空某資料庫中部分表的資料?資料庫
- JAVA面試二(資料庫部分)Java面試資料庫
- MySQL 資料庫-索引注意事項MySql資料庫索引
- 關係型資料庫之索引資料庫索引
- 學習資料庫索引機制資料庫索引
- [貝聊科技]理解資料庫索引資料庫索引
- 資料庫索引融會貫通資料庫索引
- idea內建資料庫DataGrip + 索引Idea資料庫索引
- 資料庫索引分裂 問題分析資料庫索引
- H2資料庫文件索引資料庫索引
- Oracle資料庫中的不可見索引 invisible indexOracle資料庫索引Index