+ -
当前位置:首页 → 问答吧 → 分区表的效能是否是这样的?

分区表的效能是否是这样的?

时间:2011-08-21

来源:互联网

有一个表 T 含100亿条记录

select * from t where ... 该语句会遍历全表100亿记录,最终结果假定为100条返回记录.
如果没有用分区表,T表数据存储在一个磁盘上,这条语句会花: 5分钟

请问T表分区,是否会如下所述:
如果采用分区表,T表数据平均存储在100个磁盘上,那么这条语句理论上只花约: 5分钟/100,
原因在于,同样遍历100亿条记录,如果一个磁盘会很慢,如果T表分散存储在100个磁盘上,那么100个磁盘同时遍历记录,自然会成倍提高查询速度(当然CUP想象无限快)
以上描述是否正确,请高人指点

作者: streamIF   发布时间: 2011-08-21

以下两点是从官方说明里截出来的,应该说可以得出你的结论:
· 一些查询可以得到极大的优化,这主要是借助于满足一个给定WHERE 语句的数据可以只保存在一个或多个分区内,这样在查找时就不用查找其他剩余的分区。因为分区可以在创建了分区表后进行修改,所以在第一次配置分区方案时还不曾这么做时,可以重新组织数据,来提高那些常用查询的效率。
· 通过跨多个磁盘来分散数据查询,来获得更大的查询吞吐量。

作者: nicenight   发布时间: 2011-08-21

正确 但是还扫描100亿记录 只是磁盘多了 并行扫描变快了 

作者: rucypli   发布时间: 2011-08-21