MySQL索引匹配規則以及常見的兩個簡單實用的優化辦法

打卡(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 表名;
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章