mysql 字符集造成的性能问题


简单的查询,返回同样的,用charge_id去关联,只要0.5s,但如果用order_id要18s! 什么原因?
用order_id时,执行计划是用了Using join buffer (Block Nested Loop);原因查明:把
order_forInit里的order_id字符集是utf8,而
order_item_forInit里的order_id字符集是utf8mb4, 不同的字符集造成两个做join时,不能用上索引,会出现“Using join buffer (Block Nested Loop)”。把
order_forInit里的order_id字符集
改成utf8mb4,就没性能问题了!! 不会出现Using join buffer (Block Nested Loop)

explain
select count(*) from

order_forInit a,
order_item_forInit c,
product d
WHERE
— a.order_id = c.order_id开发云主机域名
a.charge_id = c.charge_id

AND c.product_id = d.
product_id;附录:mysql字符集 utf8 和utf8mb4 的区别: https://blog.csdn.net/qq_37054881/article/details/90023611

相关推荐: 数据库的连接

表boy ,数据如下:表girl,数据如下:一、内连接 inner join :问题:用sql查出boy和girl表中家庭完整的家庭ID和用户名?select boy.hid,boy.name,girl.hid,girl.name from boy inner…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 06/04 21:40
下一篇 06/04 21:42

相关推荐