打卡(2020-04-25)
MySQL如何使用索引
B-Tree注意的點
- b-trre不是binary tree 而是balance tree
- b-tree查詢類型分爲:
- 匹配全值查詢。
- 匹配區間值查詢。
- 匹配最左前綴查詢
(這個是首要原則)
。 - 僅僅對索引進行查詢這樣的效率會更高。
- 匹配列的前綴,僅僅使用索引中的第一列,包含索引第一列的開頭一部分查找。
- 能夠實現索引匹配部分精確而其他部分進行範圍匹配。
- 如果列名是索引,那麼使用column_name is null就會使用索引。
- MySQL5.6增加了Index Condition Pushdown(ICP)特性。
查看索引使用情況
// 使用sql我們可以查看我們的建立的索引使用情況
show status like 'Handler_read%';
有兩個簡單實用優化辦法
// 1.定期的分析表和檢查表
analyze table 表名;
// 檢查表作用是檢查一個表是否有錯誤(InnoDB,Myisam)有效
check table 表名/視圖名; // 可以檢查視圖
// 2.定期的優化表格
optimize table 表名;
// 特別varchar text blob 表定期執行下,可以表中的空間碎片進行合併,也可以由於刪除或者更新造成的空間浪費
// 可以使用在修改引擎的方式,使用以下方式刪除表格
alter table 表名;