我有一个 mysql 数据库,或者更具体地说,我有一个存储 IP 地址的 mysql 表。
这是因为我限制了从我的网站发送的消息的数量。 我只是检查 IP 是否在表中,如果是,我告诉用户“慢下来”。
有没有办法让这个 MySql 表只存储一行(一条记录)x
分钟?
其他解决方案也很受欢迎......
最佳答案
不,但是你可以使用 TIMESTAMP插入/修改行时存储的字段,偶尔会删除早于 x 分钟的行。
DELETE FROM your_table
WHERE your_timestamp < NOW() - interval 5 minute
不过,为了解决您的实际问题,我建议为每个用户和他们上次发送消息的时间创建一个包含一行的表格。假设它被正确索引并且您的查询是高效的,您可能永远不需要从该表中删除任何行,除非您使用用户表的外键并删除相应的用户。当用户发送一条消息时,如果该行已存在,则插入该行,否则更新现有行(如果您愿意,可以为此使用 MySQL 扩展 REPLACE)。
关于php - 有什么方法可以使 MySql 数据库成为 "update itself"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4260865/