InnoDB多核并发设置

MySQL InnoDB允许调整事务存储引擎的多核并发参数。

innodb_thread_concurrency

同时打开并发线程数的上限,最佳实践是(2 X CPU数)+磁盘数。

通常应将其设置为0,InnoDB存储引擎能根据运行环境找出最佳线程数。

innodb_concurrency_tickets

设置可绕过并发检查的线程数,达到指定值后,会执行并发线程数的检查(免检参数设置)。

innodb_commit_concurrency

设置可提交的并发事务的数,默认值为0,若不进行设置则允许同时提交任意数量事务。

innodb_thread_sleep_delay

InnoDB线程重新进入InnoDB队列前可处于休眠状态的毫秒数。默认值10000(10秒)。

innodb_read_io_threads and innodb_write_io_threads

为读写分配指定线程数,默认值为4,最大值为64。

注:MySQL 5.1.38起。

innodb_read_ahead_threshold

允许以线性方式读取数据块大小(64 pages [page = 16K]),超过此值以异步方式读取。

InnoDB在多cpu服务器中表现良好,具有多线程操作的默认配置。

若调整它们需非常小心。

innodb_thread_concurrency参数为0,让InnoDB内部决定线程并发数最佳方案。

更多配置参考MySQL官方文档关于InnoDB启动选项和系统参数