社区
疑难问题
帖子详情
两张大表join,如何优化
envykok
2010-05-24 02:15:37
我有两张大表
T1 与 T2
Query:
SELECT
t1.Column1,
t1.Column2,
...
t2.Column1
FROM T1 t INNER JOIN T2 t2 ON t1.ID=t2.ID
对于两张大表(行数均超过5亿)
(1)对ID应该设置为cluster或者non-cluster ??? 理由???
(2) 该用索引视图吗?理由???
(3) 其他意见???理由???
...全文
1543
13
打赏
收藏
两张大表join,如何优化
我有两张大表 T1 与 T2 Query: SELECT t1.Column1, t1.Column2, ... t2.Column1 FROM T1 t INNER JOIN T2 t2 ON t1.ID=t2.ID 对于两张大表(行数均超过5亿) (1)对ID应该设置为cluster或者non-cluster ??? 理由??? (2) 该用索引视图吗?理由??? (3) 其他意见???理由???
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
使我做你和平之子
2010-05-25
打赏
举报
回复
可以考虑避免join,宁可多查几次数据库也要避免join
zhangsong841
2010-05-25
打赏
举报
回复
应该有聚集索引在join的相关列上,
这样记录就以聚集索引列的顺序存储好了,
这样两张大表就是合并连接。
其他高手的意见??
menggang9801
2010-05-24
打赏
举报
回复
学习了东西
wangjianming45
2010-05-24
打赏
举报
回复
[Quote=引用楼主 envykok 的回复:]
对于两张大表(行数均超过5亿)
(1)对ID应该设置为cluster或者non-cluster ??? 理由???
(2) 该用索引视图吗?理由???
(3) 其他意见???理由???
[/Quote]
(1):ID是否为Cluster Index,这个需要你的业务确认,如果是作为主键的话,肯定设计为Cluster Index
(2):建议使用Table Partition来分拆分表数据,减少对表的压力
(3):应该考虑Where语句,我想不太可能去搜索表所有数据,请在Where语句中的条件筛选字段上建立Index
php_boy
2010-05-24
打赏
举报
回复
如果表1和表2 有相关的列,可以使用 table partition的技术,对表1和表2 进行相同的partition和scheme,
这样对表1和表2进行联合查询,效率比较高,
表1和表2是对齐的,可以内部进行优化,效率很高
satanail
2010-05-24
打赏
举报
回复
额。。。可否把表分割。。例如a表,b表,c表,然后按时间段把你超过5亿行的数据分割到3个或以上的表内,再join?
Q315054403
2010-05-24
打赏
举报
回复
没有Where ??
csw200201
2010-05-24
打赏
举报
回复
ID columns should be set up as clustered indices on both tables. You want to make sure SQL Server uses merge join when both tables are large.
After you create clustered indices, you should run your query and look at the execution plan to ensure that merge join is used.
envykok
2010-05-24
打赏
举报
回复
[Quote=引用 3 楼 htl258 的回复:]
太大了,帮顶先
[/Quote]
那如果是5千万*5千万
昵称被占用了
2010-05-24
打赏
举报
回复
能部分提供性能提高的方法:把两个表按ID以同样的策略进行分区
htl258_Tony
2010-05-24
打赏
举报
回复
太大了,帮顶先
昵称被占用了
2010-05-24
打赏
举报
回复
没有条件?
有条件说出条件,要根据条件优化
没条件唯一的方法就是增加硬件,5亿*5亿估计现有的硬件都很难支持了
永生天地
2010-05-24
打赏
举报
回复
(行数均超过5亿)
mysql
两张
大表
join
优化
_MYSQL
join
优化
--
JOIN
优化
实践之快速匹配
本文探讨了如何
优化
MySQL中
两张
大表
的
JOIN
操作,强调了在被驱动表上创建索引对于提升连接性能的重要性。通过左连接、右连接和内连接的实例,展示不同情况下合适的索引策略,以实现查询速度的显著提升。
两张
超级
大表
join
优化
本文介绍如何通过分区和MPP数据库架构
优化
大表
关联查询效率,使用Oracle分区和Hash函数将数据切分,减少temp表空间消耗,提升SQL执行速度。
mysql
两张
大表
join
优化
,MySQL系列6 -
join
语句的
优化
当面对非常大的冷表进行
JOIN
操作且未命中索引时,可通过增加
join
_buffer_size及使用内存临时表来减少全表扫描次数,避免InnoDB Buffer Pool中LRU链表频繁更新,进而提高查询效率。
mysql
两张
大表
join
优化
_MYSQL 如何
优化
LEFF
JOIN
多张表的查询效率
本文探讨了MySQL中多表查询的
优化
策略,包括避免不必要的左连接、使用存储过程及循环语句提升灵活性、引入中间表减少重复计算、自定义函数简化复杂查询,以及面对大规模数据时采取的主从复制、分区表等高级
优化
手段。
疑难问题
22,297
社区成员
121,728
社区内容
发帖
与我相关
我的任务
疑难问题
MS-SQL Server 疑难问题
复制链接
扫一扫
分享
社区描述
MS-SQL Server 疑难问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章