Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Tabela de partição MySQL 5.5 por A-Z


Se você está determinado a fazê-lo pela primeira letra, acho que Particionamento RANGE faria o truque. No entanto, se você não tiver um requisito absoluto para o particionamento pela primeira letra, Particionamento LINEAR KEY pode ser melhor.

Aqui está um exemplo que tirei da página de manual do site e modifiquei para usar uma coluna varchar:
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 NOT NULL,
    store_id INT NOT NULL
)
PARTITION BY RANGE COLUMNS(fname) (
    PARTITION p0 VALUES LESS THAN ('h'),
    PARTITION p1 VALUES LESS THAN ('m'),
    PARTITION p2 VALUES LESS THAN ('t'),
    PARTITION p3 VALUES LESS THAN MAXVALUE
);

E executando:
... Physical database connection acquired for: Feynman
 12:33:07  [CREATE - 0 row(s), 0.062 secs]  Command processed. No rows were affected
... 1 statement(s) executed, 0 row(s) affected, exec/fetch time: 0.062/0.000 sec  [0 successful, 1 warnings, 0 errors]