gpt4 book ai didi

mysql - 什么是 MYSQL 分区?

转载 作者:IT老高 更新时间:2023-10-28 12:54:12 26 4
gpt4 key购买 nike

我已阅读文档 (http://dev.mysql.com/doc/refman/5.1/en/partitioning.html),但我想用您自己的话说,它是什么以及为什么使用它。

  1. 主要用于多台服务器,不会拖垮一台服务器吗?
  2. 因此,部分数据将在 server1 上,部分数据将在 server2 上。服务器 3 将“指向”服务器 1 或服务器 2……它是这样工作的吗?
  3. 为什么 MYSQL 文档侧重于在同一服务器内进行分区...如果目的是将其分布在服务器之间?

最佳答案

分区背后的想法不是使用多台服务器,而是使用多张表而不是一张表。您可以将一个表拆分为多个表,这样您就可以在一个子表中保存旧数据,在另一个表中保存新数据。然后,数据库可以优化查询,因为您知道它们在第二个表中,因此您需要新数据。此外,您还可以定义数据的分区方式。

来自the MySQL Documentation 的简单示例:

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,
store_id INT
)
PARTITION BY RANGE ( YEAR(separated) ) (
PARTITION p0 VALUES LESS THAN (1991),
PARTITION p1 VALUES LESS THAN (1996),
PARTITION p2 VALUES LESS THAN (2001),
PARTITION p3 VALUES LESS THAN MAXVALUE
);

这可以加快例如:

  1. 通过简单的方式删除旧数据:

    ALTER TABLE employees DROP PARTITION p0;
  2. 数据库可以加速这样的查询:

    SELECT COUNT(*)
    FROM employees
    WHERE separated BETWEEN '2000-01-01' AND '2000-12-31'
    GROUP BY store_id;

知道所有数据都只存储在 p2 分区上。

关于mysql - 什么是 MYSQL 分区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1579930/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com