2

因为我是 MySQL 新手。PARTITION这个 MySQL 语句是什么意思?

CREATE TABLE employees (
    id INT NOT NULL,
    fname VARCHAR(30),
    lname VARCHAR(30),
    hired DATE NOT NULL DEFAULT '1970-01-01',
    separated DATE NOT NULL DEFAULT '9999-12-31',
    job_code INT NOT NULL,
    store_id INT NOT NULL
)
PARTITION BY RANGE (store_id) (
    PARTITION p0 VALUES LESS THAN (6),
    PARTITION p1 VALUES LESS THAN (11),
    PARTITION p2 VALUES LESS THAN (16),
    PARTITION p3 VALUES LESS THAN (21)
);
4

2 回答 2

3

分区是一种预先组织表存储的方式。你可以说“表格的一些行会去这里,一些会去那里,还有一些会去其他地方”。通常,取决于存储引擎,效果是将表的行分布在不同的文件甚至不同的磁盘上。

来自:MySQL 5.1 新特性:MySQL 分区


您可能也有兴趣寻求有关“水平分区”的更多信息,以便更好地了解这特别有用的场景。

于 2010-04-01T11:14:32.913 回答
2

分区通过拆分不同的存储桶来帮助组织存储在表中的数据。

这类似于图书馆如何为不同的主题设置不同的书架部分,而目录/索引卡抽屉通常按字母顺序分开。

这有两个方面的帮助:

  1. 使用分区更容易管理物理存储。例如,一种策略可能是为每个分区的存储使用单独的磁盘。这通常有助于以平衡的方式将数据分布在多个物理磁盘上。
  2. 数据库可以通过识别需要检索的有限分区来优化数据的检索和交付。分区通常是在牢记物理存储特性的情况下完成的。因此,即使在检索时,数据库引擎通常也只需要从特定分区读取数据,因此可以从物理存储读取整个数据块。

以下是一些链接,您可以从中获取更多详细信息:

维基百科文章:http ://en.wikipedia.org/wiki/Partition_(database )

有关分区的 MySQL 文档:http: //dev.mysql.com/doc/refman/5.5/en/partitioning.html

于 2012-10-12T07:18:53.973 回答