我正在为 MySQL 数据库编写一些表,在这些表中,我有几个只需要几个星期的条目。
例如:
create table LoginAttempts (
ReferenceId int unsigned auto_increment not null,
UserId smallint unsigned not null,
EventTime timestamp not null...)
现在我不需要永远保留用户登录尝试的记录,所以我计划在 30 天后删除它们。显然我需要这个操作自动发生。我最初的想法是向该表添加一个触发器,该触发器将在每次对表进行条目时运行。基本上,它只是将每一行的时间戳与当前时间戳进行比较——如果超过 30 天,则该行将被删除。
但是,我担心可能会影响性能。这种方法,至少在我看来,似乎效率低下。应该有更好的方法。那么,我怎样才能以更好的方式实现我想做的事情——如果有的话?