1、 场景:当使用关联查询(inner 、left、right join)等进行查询时候,关联条件都已建立索引,但查看执行计划发现并未走索引。
原因:两表字段的字符集不相同导致关联查询索引失效
解决方案:修改表字段字符集类型,保证字符集一致,语句:alter table t1 convert to charset utf8mb4;(alter table t1 charset utf8mb4;但这是错的,这只是改了表的默认字符集,即新的字段才会使用utf8mb4,已经存在的字段仍然是utf8)
注意事项:alter table 改字符集的操作是阻塞写的(用lock = node会报错)所以业务高峰时请不要操作,即使在业务低峰时期,大表的操作仍然建议使用pt-online-schema-change在线修改字符集
引用文章:https://blog.youkuaiyun.com/sunbocong/article/details/100558286
pt-online-schema-change使用: https://segmentfault.com/a/1190000014924677?utm_source=tag-newest