MySQL中的“Partition”关键字有什么用途?

3

作为一个MySQL新手,这个MySQL语句中的PARTITION是什么意思?

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)
);
2个回答

4
分区是一种预先组织表存储的方法。你可以说“这些表的行将放在这里,其他的行将放在那里,还有一些将放在其他地方”。通常,根据存储引擎的不同,效果是将表的行分散到不同的文件甚至不同的磁盘上。
来源:MySQL 5.1新特性:MySQL分区
您可能还有兴趣进一步了解“水平分区”,以更好地理解此技术在哪些场景下特别有用。

3
分区可以通过将数据分割到不同的桶中来帮助组织表中存储的数据。
这类似于图书馆为不同主题设置独立的书架部分,而目录/索引卡抽屉通常按字母顺序分开。
它有两个好处:
1.使用分区更容易管理物理存储。例如,一种策略可能是为每个分区的存储设置单独的磁盘。这通常有助于在多个物理磁盘上平衡地分布数据。
2.数据库可以通过识别需要检索的有限分区来优化数据的检索和传递。通常考虑到物理存储特性来进行分区。因此,在检索时,数据库引擎通常只需要从特定分区读取,因此可以从物理存储中读取整个数据块。
以下是一些链接,您可以在其中获取更多详细信息:
维基百科文章:http://en.wikipedia.org/wiki/Partition_(database)
关于分区的MySQL文档:http://dev.mysql.com/doc/refman/5.5/en/partitioning.html

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接