字符串字段索引問題
字符串佔空間比較大,如果用全匹配的索引,會導致一頁索引數量比較少,可能出現頻繁讀取磁盤表的問題。
前綴索引
腳本:alter table SUser add index index2(email(6));
優勢:節約空間,合理的前綴,可以增加辨識度,減少回表的行數。
缺點:由於引擎不知道前綴索引是否有截斷字段值,所以就算是前綴索引長度大於字段值,也會進行回表操作,從而使得回表功能無法使用。如果設計不合理的前綴長度,會導致額外的回表次數。
如何合理使用前綴索引
設置表辨別度高的索引
select count(distinct left(column,4))as L4, count(distinct left(column,5))as L5, count(distinct left(column,6))as L6, count(distinct left(column,7))as L7, from T;
通過上面的腳本可以判斷固定長度下字段相識的個數,個數越小,該長度辨別度越高。
其他方法:
1.使用倒序
2.使用hash計算hash值