mysql8 版本和 mysql5.6 版本遇到查询问题

2020-04-24 18:27:19 +08:00
 awanganddong

//在 mysql5.6 版本可以命中 ad_data_id 这个索引

explain SELECT * from ssp_ad_data left join ssp_ad_statistics on ssp_ad_data.id=ssp_ad_statistics.ad_data_id;

//在 mysql8.0 不能命中索引

提示

Using where; Using join buffer (Block Nested Loop)

2967 次点击
所在节点    MySQL
3 条回复
awanganddong
2020-04-25 11:15:22 +08:00
问了下公司技术大佬
然后确定是无符号的问题

在 mysql5.6 和 mysql8.0 对符号有差异

在 mysq8 设置符号后可以命中索引
CStarter
2020-04-25 12:47:04 +08:00
看到 Block Nested Loop 这个,我感觉也有可能是字符集的问题?
awanganddong
2020-04-25 16:48:38 +08:00
@CStarter 现在通过对 mysql8.0 字段变为无符号就可以命中索引,但是对为什么这样,我现在还没有查找相关的说明

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/665781

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX