sql >> Databasteknik >  >> RDS >> Mysql

MySQL 5.5 partitionstabell av A-Z

Om du är fast besluten att göra det med den första bokstaven, tror jag att RANGE-partitionering skulle göra susen. Men om du inte har ett absolut krav för partitionering med första bokstav, LINJÄR NYCKELpartitionering kan vara bättre.

Här är ett exempel som jag hämtade från manualsidan som placerades och modifierades för att använda en varchar-kolumn:

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
);

Och kör det:

... 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]



  1. $PATH sparas inte efter att jag lämnat terminalen

  2. Infogar preparerat statement till databasen - PSQL

  3. Lägga till en inledande nolla till vissa värden i kolumn i MySQL

  4. Fel med PHP-kommandon ur synkronisering