MySQL 5.7.29 中编码不同为何走了索引

问一个问题,MySQL5.7.29中 inner join 两表相连接,字符编码不同走了索引
left大表驱动小表不走
left 小表驱动大表走索引
数据两个表都是3000
一个是主键,一个是唯一索引

不知道这样叙述问题清楚不清楚,谢谢解答

阅读 1.7k
3 个回答

和版本没有关系,编码不一样正常情况是走不了索引的,小表作为主表走了索引的情况应该是mysql底层做的优化。

mysql查询时超过一定数量会直接全表扫描,因为走索引会更慢。

例子,大表utf8,小表gbk

大表驱动小表,utf8无法转码gbk,不能使用小表的索引

小表驱动大表,gbk可以转码utf8,可以使用大表的索引,EXPLAINref列为func

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏