【发布时间】:2020-10-06 03:38:37
【问题描述】:
我需要在我的 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 触发器,它将检查表中的行数并删除旧行。但我很确定这是一个巨大的过热:/
另一种解决方案是每 N 分钟使用 cron 脚本清除表。这是一种最简单的方法,但仍然需要另一个系统来监视。
有人知道更好的解决方案吗? :)
【问题讨论】: