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;

 

posted @ 2023-01-09 21:43  郭大侠1  阅读(203)  评论(0编辑  收藏  举报