Ако сте решени да го направите от първата буква, мисля, че Разделяне на RANGE щеше да свърши работа. Ако обаче нямате абсолютно изискване за разделянето по първа буква, Разделяне на LINEAR KEY може да е по-добре.
Ето един пример, който извадих от страницата с ръководството, разположена и модифицирана, за да използвам колона 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
);
И го стартирате:
... 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]