MySQL模糊查詢的高效使用方法
阿新 • • 發佈:2018-12-12
1. 查詢資料庫的版本
可以直接在navcat中查詢,不同的資料來源版本是不一樣的,依賴於你MySQL伺服器
select version();
2. 新建索引的時候指定索引長度
通過減小索引長度,這樣能夠減小索引檔案的大小,能夠加快資料的insert。
如果是CHAR,VARCHAR型別,length可以小於欄位實際長度;如果是BLOB和TEXT型別,必須指定 length。
這個length的用處是什麼?
alter table accounts add index cnNameIndex (cn_name(10));
格式: CREATE INDEX index_name ON table_name (column_name(length), clolumn_name(length)…);
3. 模糊查詢使用索引
EXPLAIN SELECT * from accounts where cn_name like '%大%' ;
沒有使用
EXPLAIN SELECT * from accounts where cn_name like '%大%' ;
使用
區別就是第一個 % 去掉了
4. 但是有的時候,不適用
我們在做模糊查詢的時候,並非要想查詢的關鍵詞都在開頭,所以如果不是特別的要求,"keywork%"並不合適所有的模糊查詢,這樣想要在進行模糊查詢的列通過索引查詢好像失敗了,我們把剛才的索引刪了把
alter table accounts drop index cnNameIndex ;
5. 使用其它的方法
SELECT `column` FROM `table` WHERE LOCATE('keyword', `field`)>0
SELECT `column` FROM `table` WHERE POSITION('keyword' IN `filed`)
location和position的效果一樣
SELECT * FROM `person` WHERE FIND_IN_SET('apply',`name`);