To jest stara wersja strony!
Partycjonowanie dużych zbiorów danych
Czym jest partycjonowanie?
Partycjonowanie polega na fizycznym podzieleniu tabel w bazie danych na osobne pliki. Mechanizm ten jest zupełnie transparentny dla użytkownika. Oznacza to, że na tabeli można wykonywać dokładnie te same operacje co na zwykłej tabli, uwzględniając transakcje.
Dzięki partycjonowaniu można znacznie przyspieszyć operacje na bardzo dużych tabelach.
Kiedy używać partycjonowania?
Kiedy chcemy przyspieszyć pojedyncze operacje INSERT i SELECT
Kiedy chcemy przyspieszyć operacje SELECT operujące na zakresach (np. od - do)
Kiedy chcemy fizycznie podzielić tabelę między różne partycje lub dyski twarde
Kiedy chcemy wydajnie przechowywać dane historyczne
Partycjonowanie w MySQL
Mechanizm partycjonowania dostępny jest w MySQL od wersji 5.1
Zagadnienia techniczne
Partycje można tworzyć poleceniem
CREATE TABLE
lub
ALTER TABLE
Składnia:
CREATE TABLE <tableName> (<columns>)
ENGINE=<engineName>
PARTITION BY <type> ( <partitionExpression> );
<type> może być: RANGE, LIST, HASH or KEY
Przykład:
CREATE TABLE employee (
employee_id INTEGER AUTO_INCREMENT,
first_name VARCHAR(50),
last_name VARCHAR(50),
store_id TINYINT,
PRIMARY KEY (employee_id )
) ENGINE=MyISAM
PARTITION BY RANGE (employee_id) (
PARTITION p0 VALUES LESS THAN (10000),
PARTITION p1 VALUES LESS THAN (20000),
PARTITION p2 VALUES LESS THAN (30000),
PARTITION p3 VALUES LESS THAN (40000),
PARTITION p4 VALUES LESS THAN MAXVALUE)
Metody partycjonowania
Przykłady poprawnego podejścia do partycjonowania danych
Testy wydajnościowe na dużych zbiorach danych
Partycjonowanie w PostreSQL - lekko nieintuicyjnie...
Zaawansowane możliwości partycjonowania
Sub-partitioning
Zalety i wady partycjonowania
Zalety
Wady