社区
疑难问题
帖子详情
两张大表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) 其他意见???理由???
...全文
1415
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亿)
Access数据库基础课程
本课程为《Access数据库基础课程》,主要讲解为两部分,第一部分是讲解如何手动新建表、设置字段类型、数据类型,数据类型使用,条件查询,数据记录的增加、删除、修改,建立表关系等等 第二部分为自己编写SQL语句,...
mysql
两张
大表
join
优化
_MYSQL
join
优化
--
JOIN
优化
实践之快速匹配
我们通过MySQL的
JOIN
(二):
JOIN
原理得知了
两张
表的
JOIN
操作就是不断从驱动表中取出记录,然后查找出被驱动表中与之匹配的记录并连接。这个过程的实质就是查询操作,想要
优化
查询操作,建索引是最常用的方式。那索引...
mysql
两张
大表
join
优化
,MySQL系列6 -
join
语句的
优化
表t2的c2字段是没有索引的,且t2表是一张超级大的冷表,
join
语句如下:select * from t1 straight_
join
t2 on (t1.c1=t2.c2);其执行过程如下图:图片其中对t2表做多次全表扫描会带来什么问题呢?innoDB存储引擎中有...
mysql
两张
大表
join
优化
_MYSQL 如何
优化
LEFF
JOIN
多张表的查询效率
MYSQL 如何
优化
LEFF
JOIN
多张表的查询效率个需求,就是N个表的各SUM求和,无什么语句,从效是没法提高的为数算没法避免。给你几个参考建议:左连接是没有必要的,你需要的其实就是不同表各自的sum,应该各自查询就好...
Hive
优化
-
大表
join
大表
优化
5、
大表
join
大表
优化
如果Hive
优化
实战2中map
join
中小表dim_seller很大呢?比如超过了1GB大小?这种就是
大表
join
大表
的问题。首先引入一个具体的问题场景,然后基于此介绍各自
优化
方案。 5.1、问题场景 ...
疑难问题
22,209
社区成员
121,730
社区内容
发帖
与我相关
我的任务
疑难问题
MS-SQL Server 疑难问题
复制链接
扫一扫
分享
社区描述
MS-SQL Server 疑难问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章