两张稍大数据量表的联合查询
每一张表大概有70W条数据,像wherea.id=b.id或者是join这种类似的话,中间要处理笛卡尔积有70W*70W条,数据量太大,运行起来也慢(大概要运行28小时左...
每一张表大概有70W条数据,像where a.id = b.id 或者是join这种类似的话,中间要处理笛卡尔积有70W*70W条,数据量太大,运行起来也慢(大概要运行28小时左右)。有没有好的办法,比如优化sql,或者是分组处理来缩短这个处理时间(最好控制在8小时以内)?等等,请大家帮帮忙!
展开
1个回答
展开全部
说实话,70W记录不算大,而你执行查询的条件是where a.id = b.id这种等值连接,可以使用索引来提高查询效率的,一般数据库内部也不会使用笛卡尔集这种算法执行,对于数据量大的连接查询,会使用hash连接或多路归并排序连接算法来执行。
建议你在两个表的id属性上先创建索引,再执行查询。
如果还效率慢的话可能是你语句中还有其他导致查询慢的查询条件,你可以把完整的语句发上来,大家帮你分析一下,看如何优化。
建议你在两个表的id属性上先创建索引,再执行查询。
如果还效率慢的话可能是你语句中还有其他导致查询慢的查询条件,你可以把完整的语句发上来,大家帮你分析一下,看如何优化。
追问
哦,谢谢了,那我先试试!主要是在学校练习不会遇到这么多的数据,也没去考虑如何解决。
追答
你如果真正在数据库上执行过的话就会知道,实际上用不了这么多时间,数据库内部是会进行优化的。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询