mysql的varchar字段添加索引之后,查询的时候发生了索引失效的情况怎么弄啊?

提问者:帅平 问题分类:数据库
线上有一张product表,有个product_name字段是varchar类型,然后使用全匹配查询的时候很慢,所以添加了索引,但是添加之后发现查询还是很慢,并且CPI资源占用了100%,使用explain的时候发现竟然没有走索引,请问怎么办?
3 个回答
帅的被人砍
帅的被人砍
示例cpu使用率100%,大概率是全表扫描。然后索引失效的话可以看看varchar字段编码的问题,曾经我们出现过的情况是一张表是从其他地方迁移过来的。新库使用的是utf8mb4,原库是utf8,所以迁移过来后就出现了索引失效的问题。最后把对应的字段编码修改为utf8mb4即可。
发布于:3周前 (04-10) IP属地:四川省
帅平
帅平提问者
这种如何简单的查询到编码不一致的问题呢?
发布于:3周前 (04-10) IP属地:四川省
吹南风
吹南风
这种如何简单的查询到编码不一致的问题呢?
使用如下的命令:
show warnings

命令可以看到有出现convert(xxx using utf8mb4)这种就代表编码不一致。
发布于:3周前 (04-10) IP属地:四川省
我来回答