文章预览
”当系统负载较高时,事务提交的性能可能会下降。你认为有哪些可能的瓶颈?如何优化事务提交的性能?“ 这算是一道很正常的面试问题了,今天就来讨论一下这个问题。 核心要点 1. 磁盘IO瓶颈 2. LogBuffer 大小不足 3. 锁争用 4. CPU瓶颈 5. 内存瓶颈 6. 网络延迟 磁盘IO瓶颈 事务提交时,MySQL需要将 redo log 写入磁盘以保证数据的持久性。 如果事务频繁提交且 innodb_flush_log_at_trx_commit 参数设置为 1; 每次提交都需要执行磁盘同步操作(fsync),这会导致磁盘IO成为性能瓶颈。 配置 参数: innodb_flush_log_at_trx_commit : 事务提交时,刷redo log的策略 最佳性能:=0 每隔1秒,将log buffer中的数据,批量写到os cache中,同时主动fsync到磁盘。如果数据库崩溃,会有1秒的数据丢失。 强一致:=1 每次事务提交,将log buffer中的数据,批量写到os cache中,同时主动fsync
………………………………