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