php - 24 小时后自动从数据库中删除行

标签 php mysql

<分区>

我想在 php/mysql 中创建类似 Snapchat 的东西,它会在 24 小时后自动删除行。 我读过有关 cron 作业的信息,但它会降低应用程序的速度,所以我想知道是否还有其他方法可以做到这一点?

最佳答案

您正在查看的实际上是这样的:

DELETE FROM snaps WHERE created_at <= DATE_SUB(NOW(), INTERVAL 1 DAY)

只要您填充 created_at 并为其编制索引,它就会运行得相当快。如果您有很多记录,我的意思是超过 1 亿条,则需要将其隔开:

DELETE FROM snaps ... LIMIT 10000

您可以以 10K block 或任何最有效的方式进行处理。

Postgres 使用稍微不同的表示法:

DELETE FROM table WHERE created_at <= NOW() - INTERVAL '1' DAY;

关于php - 24 小时后自动从数据库中删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40697891/

相关文章:

c++ - SOCI 的问题

php - 如何从列表中选择要发送的电子邮件

MySql 通过外键唯一字段

php - 向线串添加点

php - 使用 google gps api 和 php 获取两点之间的距离

php - 通过 PHP 更改 Mysql 数据库中的值

mysql - 如何提高 Codeigniter 中的 MySQL 查询性能?

带有 ID 和描述的 PHP 数组 - 随机化数组并打印列表

php - 从 53 个表返回 mysql 数据库的 p_id 和 t_id 记录?

php - IF 语句 : What's more efficient? 许多小的,还是几个大的?