1

我想编写一个侦听器来检测表上的 DML 更改并执行一些操作。此侦听器不能嵌入到应用程序中,它单独运行。

我想让应用程序写入黑洞表,我会从二进制日志文件中检测到变化。

但是在文档中,我发现启用二进制日志记录会稍微降低 mysql 的性能。这就是为什么我想知道有没有一种方法可以让 mysql master 记录与特定表相关的更改。

谢谢!

4

1 回答 1

1

SQL 是跟踪 DML 更改并在此基础上调用函数的最佳方式。但是,当您想探索其他选项时,您可以尝试

  1. 使用General Query Log编写 cronjob,其中包括您不需要的 SELECT / SHOW 语句

  2. mysqlbinlog:它会稍微降低性能,但对于时间点数据恢复和复制是必要的。

建议:

  • 在 prod 环境中,必须启用 MySQL 二进制日志。并且必须禁用通用查询日志,因为通用查询记录了几乎所有内容,并且很快就会被填满,如果没有正确旋转,可能会耗尽磁盘空间。
  • 在 dev/qa 环境中,可以使用适当的轮换策略启用通用查询日志。
于 2015-03-26T07:44:33.053 回答