MySQL SQL優化


MySQL SQL優化

  1、建表

    1)、主鍵使用合適的無符號unsigned整型自增(避免數據增加時索引頁分裂)

    2)、長度固定的字符串字段使用CHAR類型,Varchar會額外使用1或者2個字節(長度小於255使用1字節)存儲字符串長度

    3)、選擇合適的字符串數據類型和日期類型(優先TIMESTAMP,占用4字節)

  2、索引

    1)、使用單獨的列(不對索引進行表達式或者函數運算)

    2)、對於BLOB、TEXT或者很長的VARCHAR類型的列,使用前綴索引

    3)、多列索引選擇合適的索引列順序(索引列的選擇度和最左原則)

    4)、能使用覆蓋索引的使用覆蓋索引、使用索引排序

    5)、索引列字段應不為NULL(會導致索引失效,若是唯一索引,多列可以有NULL值,使唯一索引失效)

    6)、索引保持在5條左右,多的話影響插入和更新性能

  3、查詢(避免索引失效)

    1)、使用EXPLAIN查詢SQL優化器執行計划,調整SQL查詢

    2)、使用not exists代替not in,not in不會使用索引

    3)、查詢條件避免使用前導模糊查詢,如'%xxx',因為無法使用索引

    4)、查詢條件使用or的話,要保證or兩邊的列都要有索引,否則索引失效

    5)、字符串型字段為數字時,在where條件中要加單引號,否則索引失效(因為這樣MySQL會講表中字符串類型轉換為數字之后再比較,導致索引失效)

    6)、多列索引要滿足最左前綴要求

    7)、ISNULL判斷不走索引,要慎用

    8)、LIMIT分頁的頁碼不能太大,會查詢出所有的結果然后丟棄掉不需要的。使用主鍵做連接查詢


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM