mysql字符集不同导致关联查询进程一直卡住send data,mysql修改表字符集
【1】前提
(1)语句
on关联的2个表字段都有索引 ,变成了笛卡尔积,走了几百秒都没出来。
(2)表字符集与服务器字符集
t_settle_apply 是 utf8mb4 格式, order_basicinf 为 utf8格式
服务器字符集是utf8
用(1)中left join 改成 right join 却可以走索引,因为服务器字符集是UTF8?表 order_basicinf 为 utf8格式?所以可以走索引?
【2】分析解决
有效办法:
1、修改 utf8mb4 字符集表 t_settle_apply ,把该表关联字段设置为 utf8了。问题解决,可以走索引了。
(alter table `t_settle_apply ` modify column nike_name varchar(500) character set utf8 comment '昵称';)
2、转换表字符集 alter table store_warehouse convert to character set utf8
不生效的情况:
1、alter table t1 default character set utf8;
2、alter table t1 set utf8;