Мне нужно установить максимальный предел строк в моей таблице MySQL.Документация говорит нам, что для создания таблицы можно использовать следующий код SQL:
CREATE TABLE `table_with_limit`
`id` int(11) DEFAULT NULL
) ENGINE=InnoDB MAX_ROWS=100000
Но свойство MAX_ROWS
- это не жесткое ограничение («хранить не более 100 000 строк и удалять другие»), но подсказкадля ядра базы данных, что в этой таблице будет по крайней мере 100 000 строк.
Единственный возможный способ решения проблемы - использовать триггер BEFORE INSERT
, который проверит количество строк в таблице и удалит старыестрок.Но я почти уверен, что это огромный перегрев: /
Другое решение - очищать таблицу скриптом cron каждые N минут.Это самый простой способ, но все же ему нужна другая система, за которой нужно следить.
Кто-нибудь знает лучшее решение?:)