MySQL 日志与 Postgresql 日志相比如何?

MySQL 日志与 Postgresql 日志相比如何?

MySQL 有不少日志:

  • InnoDB事务日志
  • 二进制日志
  • 通用查询日志
  • 错误日志
  • 慢查询日志

我知道 Postgresql 的 WAL,它相当于 InnoDB 的事务日志(正确吗?)。

那么其他 MySQL 日志(例如 bin log)呢 - 它们有与 Postgresql 等效的吗?

答案1

由于 MySQL 实现了多种存储引擎,因此需要二进制日志进行增量备份/复制,也需要 InnoDB 事务日志来实现 ACID 遵从(仅限 InnoDB 存储引擎)在 postgres 中,WAL 既可用于复制,也可用于 ACID 遵从,因此 WAL 结合了二进制日志和 InnoDB 事务日志。

您可以使用 log_statement 和 log_duration 将 postgres 日志查询写入 syslog/separete 日志。这样,您既可以获得查询日志,又可以使用指令 log_min_duration_statement 实现慢查询日志。

答案2

我可能在一些细节上有点错误,但我相信:

正如您所说,WAL 就像 innodb 事务日志。

所有日志通常位于 /var/log/postgresql/postgresql.log 中)

标准 PostgreSQL 中没有二进制日志文件,因为它不像 MySQL 那样进行复制。您可以使用 Slony 之类的工具来添加复制。

错误日志在postgresql.log中

慢查询日志也会进入这个文件。

通用查询日志与将慢查询限制设置为0ms相同。

相关内容