MYSQL索引原理,優化SQL

2021-10-06 05:58:28 字數 797 閱讀 8914

索引型別: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的建立索引其實就像是字典的目錄有一定的相似之處,通過...