MySQL 5.1

MySQL уверенно шагает к светлому будущему: состоялся выпуск новой версии MySQL 5.1.30; первой из 5.1, предназначенной для установки на рабочие серверы. В данной версии содержатся довольно интересные новые функции и возможности, такие как дробление таблиц, API для плагинов, планировщик событий, улучшенная работа с XML, включая XPath и другие.

Самая важная функция, конечно же, дробление (partitioning) таблиц, при котором файл с данными таблицы разбивается на несколько физических файлов, которые могут храниться в разных местах. В эпоху огромных баз данных (FaceBook, к примеру) такая возможность позволит работать с большими таблицами и в некоторых случаях даже добиваться значительного ускорения благодаря упрощению выборки. Как это работает?

Предположим, есть таблица, разбитая по полю region_code:

CREATE TABLE t1 (
    fname VARCHAR(50) NOT NULL,
    lname VARCHAR(50) NOT NULL,
    region_code TINYINT UNSIGNED NOT NULL,
    dob DATE NOT NULL
)
PARTITION BY RANGE( region_code ) (
    PARTITION p0 VALUES LESS THAN (64),
    PARTITION p1 VALUES LESS THAN (128),
    PARTITION p2 VALUES LESS THAN (192),
    PARTITION p3 VALUES LESS THAN MAXVALUE
);

Теперь, допустим, такой запрос:

SELECT fname, lname, region_code, dob
           FROM t1
           WHERE region_code > 125 AND region_code < 130;

Очевидно, что искомые данные не содержатся в p0 и p3. Следовательно нужно искать только в p1 и p2. Предварительное сокращение «лишних» частей таблицы и называется упрощением (pruning).

Опубликовано 28.11.08 10:51 в Программирование. Метки: .