Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
mysql> explain partitions select * from foo where date_added between '2010-03-11' and '2010-03-12';
+----+-------------+------------+------------+-------+---------------+------+---------+------+------+-------------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+------------+------------+-------+---------------+------+---------+------+------+-------------+
| 1 | SIMPLE | foo | p1,p4 | range | day | day | 3 | NULL | 79 | Using where |
+----+-------------+------------+------------+-------+---------------+------+---------+------+------+-------------+
P.S. На всякий случай скажу что затея имеет смысл если включена опция innodb_file_per_table
могли бы вы немного рассказать, почему желательно?
и если можно, то какие ещё опции желательно добавлять в конфигурацию по умолчанию.
ALTER TABLE foo PARTITION BY RANGE (MONTH(date_added))
(
PARTITION p01 VALUES LESS THAN (02) ,
PARTITION p02 VALUES LESS THAN (03) ,
PARTITION p03 VALUES LESS THAN (04) ,
PARTITION p04 VALUES LESS THAN (05) ,
Руками делаете или как-то автоматически? В БД нет поддержки автоматической генерации диапазонов партиционирования?date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
Mysql PARTITION BY YEAR(date) / MONTH(date) / DAYOFWEEK(date)