1.單個條件未加索引
對應的執行計畫
從查詢計畫中可以看出該查詢全表掃瞄,掃瞄行數 9000多行
2.增加唯一索引之後查詢
查詢時間縮短,然後再看查詢計畫
查詢計畫中,掃瞄行數中只有一行。
上面建立的索引是唯一索引,常規索引中查詢計畫的type一般為ref
索引列和非索引列一起查詢, 索引仍然會有效
單個索引失效的幾種情況
1.%username% like 會失效,%username like 會失效, username% like 不會失效(查詢計畫中的type=range,
in,between
都是這個type);
2.非單獨的列 例如 length(username) = 9 會失效;
三 建立組合索引
組合索引失效
1.當乙個列上的索引失效時,索引均失效
2.當索引第一列不在條件中時,則索引失效
四 關聯查詢總結
1.如果表a資料多,表b 資料少,關聯字段沒有作索引
則 先查詢表a,再查詢表b,時間較快。即 select from a left join b on
2.如果表a上的關聯欄位有索引,則應該先查表b,索引起作用
即select from b left join a on
MYSQL SQL查詢優化
1.對查詢進行優化,應盡量避免全表掃瞄,首先應考慮在 where 及 order by 涉及的列上建立索引。2.應盡量避免在 where 子句中對字段進行 null 值判斷,否則將導致引擎放棄使用索引而進行全表掃瞄,可以對欄位進行設定預設值處理,避免null值出現 3.應盡量避免在 where 子句...
5 MySQL SQL查詢優化
索引的優點 大大提公升查詢效率 索引的代價 索引導致對錶刪除,更新時,要同步修改索引 且索引本身佔據儲存空間 挑選索引 為用於搜尋,排序或分組的列建立索引 而對用作輸出顯示的列則不用建立索引 索引列差異值個數應較多 即乙個鍵值對應結果不應過多 索引列資料型別要在滿足需求下盡可能佔據較少空間 對字串可...
Mysql sql模糊查詢,sql優化日常
mysql 1 模糊查詢 2 聯表查詢優化 1 模糊查詢 like select from ms fans where nick name like demo limit 0,100 like xx 不能使用索引 like xx 可使用字段索引,查詢效率快 locate同樣不能使用索引,40萬資料中...