索引型別:b tree(mongodb),b+ bree(mysql),hash
mysql引擎:innodb myisame memory
b tree:多路平衡搜尋數,degree代表最多分的叉。為了減少樹的高度,從而減少 io次數。一頁 預設 16 kb 的話 每一頁 包含資料
b+ tree:公升級點 左閉右開、非葉子節點 不儲存資料 ,一頁 16 kb 沒有 資料區。都在葉子節點好處是預設排序方便 掃表方便。
索引落地:儲存在磁碟
myisame: tablename.myi 索引介面資料,tablename.myd資料。
myi 主鍵索引,普通索引 都是存的 myd的位址指標。
其他索引 葉子節點儲存的是主鍵的值,然後查詢主鍵索引。
主鍵索引叫做聚集索引,其他叫做非聚集索引。
_rowid 隱藏索引 int 6 byte。
顯示設定 int型別主鍵索引 是 4byte
索引最左匹配原則: accii 轉值用於 平衡樹的比較,聯合索引(a, b)是根據a, b進行排序(先根據a排序,如果a相同則根據b排序)。name like 『name%』 會用到索引 == 最左字首原則 ,但是特殊情況 有不用的場景。比如 索引都可以走到就會都不走。
執行計畫:範圍之後全失效 col > ???.
優化器:調換位置 使用 索引
查詢快取:mysql 8.0 去掉。快取結果。
覆蓋索引、回表操作:減少 select * ,要什麼 拿什麼。通過索引項資訊可以直接返回所查詢的列,則該索引稱為查詢sql的覆蓋索引。回表操作是指主鍵的值查詢主鍵索引樹的過程。
MySQL優化(三) 索引原理及索引優化
b tree索引,它是目前關係型資料庫中查詢資料最為常用和有效的索引,大多數儲存引擎都支援這種索引。使用b tree這個術語,是因為mysql在create table或其它語句中使用了這個關鍵字,但實際上不同的儲存引擎可能使用不同的資料結構,比如innodb就是使用的b tree。中的b是指bal...
MySQL優化 SQL及索引優化(二)
對支付時間建立索引 create index idx paydate on payment payment date 查詢 select max payment date from payment 在一條sql中同時查出2006年和2007年電影的數量 優化count 函式 對count函式使用的列...
MySQL索引原理及查詢優化
其實在工作中有去優化mysql語句,但之前優化僅僅是降到能夠接受花費時間之下,並有很多可以繼續提供的空間。很多時候在優化完成之後sql,也並不能向外展示。故這裡將自己平時優化的sql方法記錄下來,並找到乙個總結優化sql的地方。索引原理 mysql的建立索引其實就像是字典的目錄有一定的相似之處,通過...