我们必须为几天前发生的事件调试我们的Web应用程序,而我们所拥有的只是MySQL复制binlog(语句复制)。我们可以依赖那些与我们的Web应用程序在master上执行完全相同的SQL查询吗?
我们的应用程序在一个表中对单行进行了大量更新,但这些更新始终是UPDATE y SET x = x + 1 ...
或x = x - 2
,而不是UPDATE y SET x = 23 ...
,在我们找到的binlog中许多x = 23
种更新。是否严格分配UPDATE查询实际上是由复制机制创建的?
答案 0 :(得分:0)
实际上,应用程序正在进行SET x=23
种更新,但在某些条件下。
回答我自己的问题:你会在binlog中找到的查询与在master数据库上执行的查询相同,但你只会在那里找到插入/更新查询(显然没有选择),并且它们的顺序可能不同(你需要在binlog中的注释中查看时间戳。