天天看点

mysql语句查询很慢(数据不多或都有索引)

发现一个问题:只是一个简单的两个表关联查询,发现运行很慢

SELECT
    `ru`.*
FROM
    `edu_reg_unu` `ru`
    LEFT JOIN `edu_od` `o` ON  `o`.`number`=`ru`.`number`
    GROUP BY `ru`.`id`
    ORDER BY ru.id
    LIMIT 0,10      

从语句上看不复杂,也查询索引 number都有创建索引,应该不会这么慢的,

研究发现两个表的字符集不一致:

edu_reg_unu是utf8

edu_od是utf8mb4

mysql语句查询很慢(数据不多或都有索引)
ALTER TABLE `edu_reg_unu` CHARACTER SET = utf8, COLLATE = utf8_general_ci;

# 下面这个语句一定运行
ALTER TABLE `edu_reg_unu` CONVERT TO CHARSET utf8;      
ALTER TABLE `edu_reg_unu` CONVERT TO CHARSET utf8;