我正在寻找类似于查看文件更改的 inotify 方法的解决方案。我知道我可以查看 mysql 数据库的 binlog 文件并运行查询来挑选新结果,但这似乎非常低效和不优雅;就像在循环中执行大量查询以等待新结果一样。
问问题
2591 次
3 回答
1
就 MyISAM 表而言,您可以观看information_schema.TABLES.UPDATE_TIME
。这将使您免于轮询您感兴趣的所有表。对于 InnoDB,观看 binlog 是我能想到的最好的方法。
于 2010-12-11T20:07:15.637 回答
0
另一种方法是执行推送/信号而不是数据库轮询。让任何进程更新数据库,通知您的 Perl 代码通过您选择的任何 IPC 完成了更新(哎呀,附加到更改表名称的日志文件可能足够好)。
如果更新数量很少/很少,但对它们的反应时间必须很快,这尤其有效。
另一个好处是可移植性——适用于任何 MySQL 后端或任何其他数据库引擎。
于 2010-12-11T20:16:36.687 回答