从mysql检测更改

时间:2018-08-16 19:28:58

标签: php mysql

我使用的PHP机器人每天运行24/1天,以将请求发送到另一台服务器

起初我在考虑检查每10秒发送一次新数据,但这会很糟糕,因为每天会有8640个请求,更不用说解析所需的数据大小和数量了,等等,然后再将其发送到另一台服务器

我认为有什么更好的方法来检测mysql的更改并通知PHP

就像有新数据一样,mysql发送与新数据相关的具有唯一ID的通知

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

我相信您可以有一个保存计数信息的文件,并且在每次请求时都可以要求查询的记录数。

SELECT COUNT(?) FROM .....

如果计数高于上次发送请求的次数,则您唯一可以做的就是减去它,从而获得更改数量。然后,您可以发出另一个仅查找更改的请求。

 SELECT ? FROM ? WHERE ? ORDER BY `ID` DESC LIMIT $numberOfChanges

我相信ID是自动递增的,这样,更改将具有较高的ID

答案 2 :(得分:1)

查看此堆栈溢出问题/答案: When a new row in database is added, an external command line program must be invoked

创建一个MySQL触发器,以便在添加新数据时更新一个仅用于保存此信息的特殊表。您的cron作业和/或php机器人每10秒将检查此表以获取信息。如果发生更改,则将该信息发送到另一台服务器并清除特殊表,否则结束并等待接下来的10秒钟。