L'idea alla base del partizionamento non consiste nell'utilizzare più server ma utilizzare più tabelle anziché una tabella. È possibile dividere una tabella in più tabelle in modo da poter disporre di dati vecchi in una sottocartella e nuovi dati in un'altra tabella. Quindi il database può ottimizzare le query in cui chiedi nuovi dati sapendo che si trovano nella seconda tabella. Inoltre, si definisce come vengono suddivisi i dati.
esempio semplice da 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
);
Questo permette di velocizzare esempio:
Dropping vecchi dati per semplice:
ALTER TABLE employees DROP PARTITION p0;
Database può accelerare una query così:
SELECT COUNT(*)
FROM employees
WHERE separated BETWEEN '2000-01-01' AND '2000-12-31'
GROUP BY store_id;
Sapendo che tutti i dati sono memorizzati solo sulla partizione p2.
fonte
2009-10-16 19:42:13
# 2 viene chiamato "potatura" – longneck
Questa è la migliore spiegazione sul partizionamento su Internet. –