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

版权声明:本文为HCG原创文章,未经博主允许不得转载。请联系[email protected] https://blog.csdn.net/qq_39455116/article/details/84400995
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`);

猜你喜欢

转载自blog.csdn.net/qq_39455116/article/details/84400995
今日推荐