【发布时间】:2016-01-11 15:54:22
【问题描述】:
我必须根据从其他表数据中的选择,使用复杂且昂贵的查询来填充和更新我的 MySql 数据库表之一。当我对其进行查询时,该表不需要始终完全更新,但我希望每 5 分钟进行一次循环更新。
这个自动更新应该是无限的,我需要确保它永远不会停止。
经过一番研究,我找到了一些解决方案,但我不知道哪个对安全性和性能更好。
其中一个可能是我的目标:
- 不要每次都从php创建表并进行复杂查询以获得所需的结果
- 创建一个循环重复并更新表 db 的 php 脚本,可能使用 Cron Job。
- 使用 sql 事件更新表
我认为第一个解决方案可能很昂贵,因为查询很复杂,每秒可能有很多请求,但结果总是会更新。我没有关于 Cron Job 的经验,所以我不知道这是否是一个好主意。对于第三种解决方案,我仍然没有运行事件的数据库权限,但我想知道它是否是一个有效的解决方案。
欢迎所有其他解决方案,谢谢。
【问题讨论】:
-
解决方案 #2 可能是最佳的,一个 cronjob 触发的 php scipt 可以处理您的表的更新。您是否在其中缓存查询结果?
-
不,我不需要缓存结果查询,因为我不必输出它们。该表用作其他大表串联的过滤器。就像一张只包含 30 个项目的表格,取自其他表格,在那一刻最适合特定属性。我不知道如何用 cron 作业来实现它,但我能确定循环永远不会停止吗?
-
你可以在
MySQL中创建一个VIEW
标签: php mysql performance mysqli cyclic