パーティション分割の考え方は、複数のサーバーを使用するのではなく、1つのテーブルではなく複数のテーブルを使用することです。あるテーブルを複数のテーブルに分割して、あるサブテーブルの古いデータと別のテーブルの新しいデータを持つことができます。次に、データベースは、2番目のテーブルにあることを知って新しいデータを要求するクエリを最適化できます。さらに、データの分割方法を定義します。 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
);
これは、例えばをスピードアップすることができます:
簡単なことで、古いデータを削除
:
ALTER TABLE employees DROP PARTITION p0;
データベースクエリをスピードアップすることができますこのように:
SELECT COUNT(*)
FROM employees
WHERE separated BETWEEN '2000-01-01' AND '2000-12-31'
GROUP BY store_id;
すべてのデータがp2パーティションにのみ格納されていることがわかっています。
#2は「プルーニング」と呼ばれています – longneck
これはインターネット上でのパーティション分割に関する最良の説明です。 –