我知道 MySQL 中的全局配置“innodb_flush_log_at_trx_commit”,但这是服务器范围内的。
我正在寻找某种方式来指定某些事务可以是 ACI 而不是 ACID,以减少提交延迟,以换取数据库意外终止时事务丢失的风险。
我希望能够指定每个事务的持久性保证事务,或者每个会话/连接的会话/连接。
MySQL 8.x 可以吗?
更新:Postgresql 通过“异步提交”具有此功能。例如:https://www.postgresql.org/docs/current/wal-async-commit.html。我的 MySQL 需要类似的东西。
抱歉,不,重做日志持久性是全局设置。没有选项可以更改每个事务的日志刷新。
您可能会允许日志刷新的持久性降低,然后在需要时通过运行 DDL 语句偶尔强制刷新。根据文档,DDL 会导致重做日志刷新。我没有证据证明这一点。
我建议用其他方式解决问题。