1

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

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

4

2 回答 2

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 服务器查询优化器将知道只有表 'ipnumbers_2' 必须检查,因此您获得了巨大的速度提升。

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

玩得开心!

于 2010-05-24T20:31:15.553 回答
0

你可能会通读一遍

这个这个

尽管这些文章是特定于 mysql 的,并且如果您在不同的 DBMS 上工作,不应盲目地得出所有性能方面的结论,但这些文章仍然很好地描述了基本概念和想法以及一些真实的数字和示例。

于 2010-05-18T12:32:42.670 回答