社区
疑难问题
帖子详情
两张大表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) 其他意见???理由???
...全文
1466
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
作业
写回复
配置赞助广告
用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
原理得知了
两张
表的
JOIN
操作就是不断从驱动表中取出记录,然后查找出被驱动表中与之匹配的记录并连接。这个过程的实质就是查询操作,想要
优化
查询操作,建索引是最常用的方式。那索引怎么建呢?我们来讨论下,首先插入测试数据。CREATE TABLE t1 (id INT PRIMARY KEY AUTO_INCREMENT,type...
mysql
两张
大表
join
优化
,MySQL系列6 -
join
语句的
优化
当被驱动表是一张非常大的冷表,且没有命中索引时。我们该如何做
优化
呢?表t2的c2字段是没有索引的,且t2表是一张超级大的冷表,
join
语句如下:select * from t1 straight_
join
t2 on (t1.c1=t2.c2);其执行过程如下图:图片其中对t2表做多次全表扫描会带来什么问题呢?innoDB存储引擎中有一片区域称为Buffer Pool,用来做查询缓存的。其使用的算...
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、问题场景 问题场景如下: A表为一个汇总表,汇总的是卖家买家最近N天交易汇总信息,即对于每个卖家最近N天,其每个买家共成交了多少单,总金额是多少,假设N取90天,汇总值仅取成交单数。 A表的字段有:buyer_id、selle
大数据开发实战:Hive
优化
实战3-
大表
join
大表
优化
https://www.cnblogs.com/shaosks/p/9491905.html https://www.cnblogs.com/bjgua/p/9624144.html 5、
大表
join
大表
优化
如果Hive
优化
实战2中map
join
中小表dim_seller很大呢?比如超过了1GB大小?这种就是
大表
join
大表
的问题。首先引入一个具体的问题场景,然后基于此介绍各自
优化
方案。 5.1、问题场景 问题场景如下: A表为一个汇总表,汇总的是卖家
疑难问题
22,300
社区成员
121,734
社区内容
发帖
与我相关
我的任务
疑难问题
MS-SQL Server 疑难问题
复制链接
扫一扫
分享
社区描述
MS-SQL Server 疑难问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章