Мне нужно установить максимальный предел строк в моей таблице 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 script каждые N минут. Это самый простой способ, но для этого нужна еще одна система.
Кто-нибудь знает лучшее решение?:)