mysql like %语句的索引失效
在数据库进行模糊查询经常会使用like语法来满足需求
语法
field LIKE condition
日常中,最常时间的语法莫过于是%语法了,%代表匹配任意字符,
但需要注意的是"%"所在的位置可能会导致索引失效,导致语句运行过慢或者超时
like %keyword 索引失效
like keyword% 索引有效
like %keyword% 索引失效
解决方式
like %keyword //对这个字段创建一个REVERSE的索引,然后REVERSE(fieldName) LIKE REVERSE('%keyword')
like %keyword% //使用locate、position、instr等函数代替
如果有搜索需求,建议还是使用搜索引擎的技术去实现,例如elasticsearch
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
评论已关闭