資料庫索引層級

xuexiaogang發表於2021-12-11

自己原文公眾號: https://mp.weixin.qq.com/s/vkKV-mab6TVHrtDfq_AK5A


書接上回,我一直說資料量和查詢速度沒關係。請看這兩個表(這裡拿Oracle說事,是因為這個比較直觀。MySQL PG DB2都是一個原理),其實說白了都是B+Tree的原理,只是不同資料庫在這個基礎上實現的優化演算法不同。

T1索引有2000萬,C1索引有200萬。他們對應的表如下。

可以看出2000萬和200萬,的索引BLEVEL都是2.也就是說你只要使用索引,那麼200萬和2000萬是一樣的查詢效果。

翻過來說如果不用索引,那麼自然是和資料量有關係,資料越多越慢。

也就是說如果你越用越慢,那麼基本可以斷定你沒有使用索引。


沒有使用索引在國內(除了大廠做的好點以外)比較常見。別說開發了,就是很多從事資料庫DBA的也不見得用得好。因為那些DBA僅僅是administrator的角色。那種太low了。


為什麼大廠的系統相對來說穩定,因為都遵守了開發規範。(不遵守開發規範這也不好意思出門打招呼)

對於MySQL來說預設RR下,不用索引都是表級鎖,多慘

資料庫索引層級

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/637517/viewspace-2847180/,如需轉載,請註明出處,否則將追究法律責任。

相關文章