Ideą partycjonowania nie jest używanie wielu serwerów, ale używanie wielu tabel zamiast jednej tabeli. Możesz podzielić tabelę na wiele tabel, dzięki czemu możesz mieć stare dane w jednej tabeli podrzędnej i nowe dane w innej tabeli. Następnie baza danych może zoptymalizować zapytania, w których żądają nowych danych, wiedząc, że znajdują się w drugiej tabeli. Co więcej, definiujesz sposób partycjonowania danych.
Prosty przykład z 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
);
Pozwala to przyspieszyć np
Usunięcie starych danych przez prosty:
ALTER TABLE employees DROP PARTITION p0;
Baza danych może przyspieszyć zapytanie tak:
SELECT COUNT(*)
FROM employees
WHERE separated BETWEEN '2000-01-01' AND '2000-12-31'
GROUP BY store_id;
Wiedza o tym, że wszystkie dane są przechowywane tylko na partycji p2.
# 2 nazywa się "przycinanie" – longneck
To jest najlepsze wytłumaczenie na temat partycjonowania w Internecie. –