Да, спасибо, так можно.
Хотелось бы конечно, создать партиции по дням недели или месяца, чтобы не удалять/создавать, а только обслуживать. Поэкспериментирую с этим, ещё раз спасибо!
Всё верно, такой запрос срабатывает, но в реальной выборке он вернёт только те данные, где `INSERT_DATE` = '2015-03-15 00:00:00'
т.к. в INSERT_DATE находится время, а не только дата
а нужно выбрать данные за все сутки
SELECT INSERT_DATE, DATA from logs WHERE INSERT_DATE >= '2015-04-16' AND INSERT_DATE < '2015-04-17'
вот этот запрос включает все партиции
Андрей, подскажите, пожалуйста — где я неправ, делаю таблицу:
CREATE TABLE `logs` (
`INSERT_DATE` datetime DEFAULT NULL,
`DATA` text NOT NULL,
KEY `INSERT_DATE` (`INSERT_DATE`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
/*!50100 PARTITION BY RANGE (DAYOFWEEK(insert_date))
(PARTITION p01 VALUES LESS THAN (2) ENGINE = InnoDB,
PARTITION p02 VALUES LESS THAN (3) ENGINE = InnoDB,
PARTITION p03 VALUES LESS THAN (4) ENGINE = InnoDB,
PARTITION p04 VALUES LESS THAN (5) ENGINE = InnoDB,
PARTITION p05 VALUES LESS THAN (6) ENGINE = InnoDB,
PARTITION p06 VALUES LESS THAN (7) ENGINE = InnoDB,
PARTITION p07 VALUES LESS THAN (8) ENGINE = InnoDB,
PARTITION pmaxval VALUES LESS THAN MAXVALUE ENGINE = InnoDB) */
Во-первых, часть с партициями закомментирована.
Когда делаю EXPLAIN PARTITION с выборкой по дате, показывает, что запрос включит в себя все партиции.
Опцию innodb_file_per_table включил, базу перезалил, таблицы стали в разных файлах
Индекс по дате для того, чтобы быстрее выбирать данные и удалять
Индекс вставлять не мешает по ~2000 строк в секунду при 50 млн записей (на пиках)
Проблемы начинаются после большого суточного удаления
Т.е. создавать новую таблицу без индекса для быстрой вставки, через день в ней делать индексирование для быстрой выборки и удаления и после этого удалять?
Диск — SSD, который предоствляется амазоновским AWS
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
Хотелось бы конечно, создать партиции по дням недели или месяца, чтобы не удалять/создавать, а только обслуживать. Поэкспериментирую с этим, ещё раз спасибо!