1. 程式人生 > >MySQL模糊查詢的高效使用方法

MySQL模糊查詢的高效使用方法

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`);