最小的 InnoDB 配置

这是使用 InnoDB 表的 MySQL 服务器的最低设置。使用 InnoDB,不需要查询缓存。当表或数据库被切换时回收磁盘空间。如果你正在使用 SSD,则刷新是一种冗余操作(SDD 不是顺序的)。

default_storage_engine = InnoDB
query_cache_type = 0
innodb_file_per_table = 1
innodb_flush_neighbors = 0

并发

通过将 innodb_thread_concurrency 设置为 infinity(0),确保我们可以创建超过默认的 4 个线程; 这让 InnoDB 根据最佳执行情况做出决定。

innodb_thread_concurrency = 0
innodb_read_io_threads = 64
innodb_write_io_threads = 64

硬盘利用率

设置 MySQL 的 IOPS 容量(正常负载)和 capacity_max(绝对最大值)。默认值 200 适用于 HDD,但是现在,如果 SSD 具有数千 IOPS,你可能需要调整此数量。你可以运行许多测试来确定 IOPS。如果你运行的是专用 MySQL 服务器上述值应接近该限制。如果你在同一台计算机上运行任何其他服务,则应根据需要进行分配。

innodb_io_capacity = 2500
innodb_io_capacity_max = 3000

RAM 利用率

设置 MySQL 可用的 RAM。虽然经验法则是 70-80%,但这实际上取决于你的实例是否专用于 MySQL,以及可用的 RAM 数量。如果你有很多可用的东西,不要浪费 RAM(即资源)。

innodb_buffer_pool_size = 10G