免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2360 | 回复: 4
打印 上一主题 下一主题

mysql的JOIN算法 [复制链接]

论坛徽章:
7
数据库技术版块每日发帖之星
日期:2015-08-08 06:20:00数据库技术版块每日发帖之星
日期:2015-08-29 06:20:00数据库技术版块每日发帖之星
日期:2015-08-29 06:20:00数据库技术版块每日发帖之星
日期:2015-09-18 06:20:00数据库技术版块每周发帖之星
日期:2015-11-06 19:56:51数据库技术版块每日发帖之星
日期:2016-01-22 06:20:00数据库技术版块每日发帖之星
日期:2016-02-05 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-05-24 14:57 |只看该作者 |倒序浏览
请问 mysql 的join 有类似oracle 的 hash join 、sort merge join 吗
如果没有的话, 那么两个表做 join 时,岂不是会很慢吗?
比如 1个表 10条,1个表 1000w 条
求解释,谢谢

论坛徽章:
0
2 [报告]
发表于 2013-05-27 10:58 |只看该作者
oracle。。。就不是很懂老
。。mysql有左。右。内连接。。。mysql的查询机制是首先排除不符合条件的数据。。
。。。快慢是相对的。。左。右。内连接肯定要比子查询快。。

。。。若如你所说。。一个表就1000W行。。我觉得这个DBA不是很称职。。

论坛徽章:
7
数据库技术版块每日发帖之星
日期:2015-08-08 06:20:00数据库技术版块每日发帖之星
日期:2015-08-29 06:20:00数据库技术版块每日发帖之星
日期:2015-08-29 06:20:00数据库技术版块每日发帖之星
日期:2015-09-18 06:20:00数据库技术版块每周发帖之星
日期:2015-11-06 19:56:51数据库技术版块每日发帖之星
日期:2016-01-22 06:20:00数据库技术版块每日发帖之星
日期:2016-02-05 06:20:00
3 [报告]
发表于 2013-05-27 11:05 |只看该作者
你所说的 左、右、内,还有全,半,反半等是连接类型,
hash 、sort merge 、nested loop 是连接算法
另外,1000w的表很常见吧

回复 2# CTUOS


   

论坛徽章:
0
4 [报告]
发表于 2013-05-27 11:58 |只看该作者
。连接类型本身就有算法
。。mysql的 join 只有 nested loop。。一种算法。。
。。如果你想要更快点的话。。1000W行的表。。我建议你拆分。

论坛徽章:
0
5 [报告]
发表于 2013-05-28 11:17 |只看该作者
MySQL里只有nest loop join,MariaDB的5.5版本里有hash join
大表连接,统计分析,一般都不用mysql搞吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP