MySQL中Join算法实现原理分析.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MySQL中Join算法实现原理分析.doc

  MySQL中Join算法实现原理分析教育资源库   在MySQL 中,只有一种 Join 算法,就是大名鼎鼎的 Nested Loop Join,他没有其他很多数据库所提供的 Hash Join,也没有 Sort Merge Join。顾名思义,Nested Loop Join 实际上就是通过驱动表的结果集作为循环基础数据,然后一条一条的通过该结果集中的数据作为过滤条件到下一个表中查询数据,然后合并结果。如果还有第三个参与 Join,则再通过前两个表的 Join 结果集作为循环基础数据,再一次通过循环查询条件到第三个表中查询数据,如此往复。   还是通过示例和图解来说明吧,后面将通过我个人数据库测试环境中的一个 example(自行设计,非MySQL 自己提供) 数据库中的三个表的 Join 查询来进行示例。   注意:由于这里有些内容需要在MySQL 5.1.18之后的版本中才会体现出来,所以本测试的MySQL 版本为5.1.26   表结构: 1 skylocalhost : example 11:09:32gt; shot_create` datetime NOT NULL, 16  17 `gmt_modified` datetime NOT NULL, 18  19 `status` varchar(16) NOT NULL, 20  21 KEY `idx_user_group_uid` (`user_id`) 22  23 ) ENGINE=MyISAM DEFAULT CHARSET=utf8 24  25 1 rople 11:10:32gt; shoessageG 28  29 *************************** 1. roessage 32  33 Create Table: CREATE TABLE `group_message` ( 34  35 `id` int(11) NOT NULL AUTO_INCREMENT, 36  37 `gmt_create` datetime NOT NULL, 38  39 `gmt_modified` datetime NOT NULL, 40  41 `group_id` int(11) NOT NULL, 42  43 `user_id` int(11) NOT NULL, 44  45 `author` varchar(32) NOT NULL, 46  47 `subject` varchar(128) NOT NULL, 48  49 PRIMARY KEY (`id`), 50  51 KEY `idx_group_message_author_subject` (`author`,`subject`(16)), 52  53 KEY `idx_group_message_author` (`author`), 54  55 KEY `idx_group_message_gid_uid` (`group_id`,`user_id`) 56  57 ) ENGINE=MyISAM AUTO_INCREMENT=97 DEFAULT CHARSET=utf8 58  59 1 rople 11:10:43gt; shoessage_contentG 62  63 *************************** 1. roessage_content 66  67 Create Table: CREATE TABLE `group_message_content` ( 68  69 `group_msg_id` int(11) NOT NULL, 70  71 `content` text NOT NULL, 72  73 KEY `group_message_content_msg_id` (`group_msg_id`) 74  75 ) ENGINE=MyISAM DEFAULT CHARSET=utf8 76  77 1 ro.subject msg_subject, c.content msg_content 2  3 from user_group g,group_message m,group_message_content c 4  5 .group_id = g.group_id 8  9 and c.group_msg_id = m.id   123下一页 这篇文章来自..,。看看我们的 Query 的执行计划: 1 skylocalhost : example 11:17:04gt; explain select m.subject msg_subject, c.content msg_content

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档