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 


当前标题:mysql字符集造成的性能问题
文章位置:http://bzwzjz.com/article/gpcpie.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都网站制作 专业网站设计 成都网站建设公司 成都网站制作 盐亭网站设计 网站制作 成都商城网站建设 成都网站设计 成都网站制作 响应式网站设计 公司网站建设 网站制作 网站制作公司 成都网站建设流程 成都网站设计 app网站建设 网站建设 成都网站设计 成都网站设计 手机网站制作 手机网站建设 成都网站建设