求助——mysql自连接查询性能

totola147 DBA  2013-12-09 04:15:28
同一个表链接查询,自连接的次数是否会显著影响查询性能

自己已经做了实验,在1000000数据量下,查询性能很好,并且查询的响应时间并不随自连接的次数增加而增加;但是自己还不是很放心这样的查询设计,希望大家帮忙看看 会不会又严重的问题;毕竟自连接次数比较多

试验的时候测试了 2,3,4,5 次的自连接


或者大家帮忙分析一下自连接2次和自连接3次有哪些额外的消耗

对不起可用分不多,只能给20了
...全文
160 点赞 收藏 6
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
totola147 2013-12-10
引用 2 楼 lzd_83 的回复:
贴出查询语句
这个查询我封装到存储过程里了



-- 首先涉及三张表
-- 表1 Paper(paperID,content)

-- 表2 Tag(tagID,tagName)

-- 表3 TestTag(paperID,tagID) 表1和表2 之间为多对多关系此为关系表  


-- 下面是存储过程中的部分内容:

select concat('select SQL_CALC_FOUND_ROWS a.* from TestTag b 
				join TestTag c on b.paperID=c.paperID and b.tagID<>c.tagID
				join TestTag d on b.paperID=d.paperID and b.tagID<>c.tagID and b.tagID<>d.tagID
				join TestTag e on b.paperID=e.paperID and b.tagID<>c.tagID and b.tagID<>d.tagID and b.tagID<>e.tagID
				join TestTag f on b.paperID=f.paperID and b.tagID<>c.tagID and b.tagID<>d.tagID and b.tagID<>e.tagID and b.tagID<>f.tagID
				join paper a on a.paperID=b.paperID where b.tagID=? and c.tagID=? and d.tagID=? and e.tagID=? and f.tagID=? ',conditions,'  ',orderBy,' ',orderType,' limit ?,?') into @sqlstr;
				PREPARE stmt1 FROM @sqlstr;
				EXECUTE stmt1 USING @t1,@t2,@t3,@t4,@t5,@a,@b;

回复
totola147 2013-12-10
引用 1 楼 rucypli 的回复:
感觉自连接条件要是在索引上的话 没什么额外消耗的 消耗是线性的
您认为消耗是线性的 您否详细描述一下
回复
totola147 2013-12-10
引用 3 楼 ACMAIN_CHM 的回复:
没什么差别,和连接五个不同的表性能上差异应该并不大。
您不支持一楼的观点吗 如果和链接5个不同的表性能上差异不大的话 那就太可怕了 恩,我抽时间验证一下您的观点 希望不是这样
回复
ACMAIN_CHM 2013-12-09
没什么差别,和连接五个不同的表性能上差异应该并不大。
回复
Rotel-刘志东 2013-12-09
贴出查询语句
回复
rucypli 2013-12-09
感觉自连接条件要是在索引上的话 没什么额外消耗的 消耗是线性的
回复
发动态
发帖子
MySQL
创建于2007-09-28

5.4w+

社区成员

MySQL相关内容讨论专区
申请成为版主
社区公告
暂无公告