模糊查询like %keyword%.不走索引。有,没有办法让它走索引
你好,
研发同学建议可以试用下 表达式索引
,该功能属于实验特性,可以先看下连接内容,下图为实操:
https://pingcap.com/docs-cn/stable/sql-statements/sql-statement-create-index/#表达式索引
1 个赞
表达式索引 需要已知“keyword” 场景是在有限~
我理解表达式索引本身就是比较 hack 的做法?就像你说的是对数据分布比较了解再去使用。
700多万条数据,节省了将近6秒钟,很不错的建议
1 个赞
如果过滤出的数据不是很多的话,先用覆盖索引的思想单独查这一个列跟主键,然后拿主键去拿数据
有这种需求,数据量不大的话还好,数据量大的情况下最好是全文检索 可以考虑redis或es
强制走索引。
%这个条件本来就不适合索引查找的。
%在开头是不会走索引的,只有%在后面才会走索引
一般数据库这样都不能的。要从设计上改变。
除非你是全文索引场景,oracle mysql pg都有全文。但是如果要彻底的那是es的范畴。
左边 % 是走不了索引的,这个mysql也一样,建议生产左边不加%