在研发过程中难免会遇到相关的sql优化,在工作中我常用的大概有两种优化方式:

  • 复杂sql拆分
  • 使用索引

但是在一次sql优化过程中,遇到了一种情况:两个关联表中关联字段均有索引,但是其中一个表去关联另外一个失效。正常情况下,无论使用哪个表作为主表,其索引都是有效的。
1、查看对应表中相关索引是书写正确
2、查看表所对应的编码。因创建表时全部统一UTF-8,总体来说表的格式是一致的。
3、查看表所对应索引字段编码。
show full columns from precheck_rk; show full columns from precheck_jy ;查看发现两个表字段关联字段索引编码不同,难道编码不同也会对索引是否有效有影响吗?
虽然表都是utf-8存储模式,但是其表字段编码不同。

mysql优化——索引失效

mysql优化——索引失效

更改前
mysql优化——索引失效

更改后
mysql优化——索引失效

优化前查询情况
mysql优化——索引失效
优化后查询情况
mysql优化——索引失效

相关文章: