表分区

时间:2010-05-18 12:12:36

标签: sql database-partitioning

与普通方法相比,使用表分区有多优势?

是否存在一种可以统计的样本案例或详细的比较分析(我知道这个词太强了,但如果有一些数字说明它会真的有帮助)强调过程的效用。

2 个答案:

答案 0 :(得分:2)

分区非常强大,实际上是将表数据划分为几个较小的表 - 然后使用视图统一它们。

例如,'ipnumbers'可以分为表'ipnumbers_1','ipnumbers_2'和'ipnumbers_3',其中第一个表包含约束,因此只存储0.0.0.0 - 50.0.0.0范围内的ipnumbers,并且第二个表包含仅允许存储范围50.0.0.1到100.0.0.0等的约束。然后可以添加一个视图,将分区表统一为一个:

SELECT * FROM ipnumbers_1
UNION ALL
SELECT * FROM ipnumbers_2
UNION ALL
SELECT * FROM ipnumbers_3

现在,当您查询某个ipnumber的视图时:

SELECT * FROM ipnumberview WHERE ipno=60.0.0.1

.. SQL Server查询优化器将知道只有表'ipnumbers_2'必须被检查,因此您获得了巨大的速度提升。

此外,可以插入模式绑定视图(自动将数据放在正确的目标表中),并且可以将表放在不同的服务器上(尽管设置有点棘手),您还可以向视图添加索引。

玩得开心!

答案 1 :(得分:0)

您可能会一直阅读

thisthis

即使文章是特定于mysql的,如果你在不同的DBMS上工作,也不应盲目地采取所有性能明智的结论,但这些文章仍然很好地描述了基本概念和想法以及一些实数和例子。