@mysql選錯索引的解決
analyze table 表名
1、強制選擇索引 force index
eg: select * from t force index(a) where a between 10000 and 20000;
缺點:這麼寫不優美;
如果索引改了名字,這個語句也得改,顯得很麻煩;
遷移資料庫後,語句可能不相容;
==》還是變更的及時性問題
2、引導mysql使用期望的索引
eg: order by b limit 1
可調整為 order by b,a limit 1
==》不是通用的優化手段
3、在有些場景下,可新建乙個更合適的索引供優化器選擇,或刪除誤用的索引
mysql索引選錯 10 mysql選錯索引
10 mysql選錯索引 在mysql表中可以支援多個索引,有的sql不指定使用哪個索引,由mysql自己來決定,但是有時候mysql選錯了索引,導致執行很慢。例子create table t10 id int 11 not null,a int 11 default null,b int 11 d...
10 mysql選錯索引
在mysql表中可以支援多個索引,有的 sql不指定使用哪個索引,由 mysql 自己來決定,但是有時候 mysql 選錯了索引,導致執行很慢。例子create table t10 id int 11 not null a int 11 default null b int 11 default n...
MYSQL學習筆記之選錯索引
優化器的目的是選擇索引。他會根據自己內部的判斷,從而選擇乙個最優的執行方案。而判斷是乙個因素就是掃瞄行數,越少的掃瞄行數,就說明訪問磁碟的資料次數越少,消耗的cpu資源也就越少。1.掃瞄行數如何判斷 mysql開始執行之前,並不能知道,滿足這個條件的記錄有多少,而只能採用統計的方法,進行預估。這個統...