innodb 是否有任何配置选项可以提高 SSD 驱动器的性能?
Is there any configuration option for innodb that increase the performance for SSD drives?
InnoDB 通常假设使用主轴硬盘驱动器存储数据,因此它会尽最大努力减少随机访问,并尽可能选择顺序访问。如今,生产中的许多 MySQL 实例都使用 SSD 闪存驱动器,因此这些设计决策的好处已经消失,并且可能会导致一些开销。
现在InnoDB的开发有没有考虑到这一点?是否有用于调整 SSD 驱动器性能的配置选项?
有一些直接影响 SSD 与旋转驱动器的可调参数:
innodb_flush_neighbors = OFF -- since there is no "rotational delay"
innodb_random_read_ahead = OFF
innodb_io_capacity = 2000
innodb_io_capacity_max = 4000
innodb_page_size - Using a smaller size _may_ help if _all_ tables are
accessed randomly _and_ have small rows. (not for the faint of heart)
我没有 "good" 个数值,它们取决于 SSD/Flash 的性能特征。
可能还有更多设置。例如,我不知道 innodb_read_io_threads
和 innodb_write_io_threads
。 (默认 4 个,最多 64 个。)
RAID 控制器上的电池后备写缓存使写入基本上是瞬时的。这也是一个因素
8.0(最新版本)有一些 "cost" 参数适用于磁盘与 RAM 访问。它们是手动可调的。 (对不起,我没有详细资料。)我已经恳求开发人员让他们自己调整。
请记住,如果您是 "at the limit" 此类可调参数,那么在系统崩溃之前您将没有多少空间。
请记住,优化索引和查询经常会给您带来最大的收益。
InnoDB 通常假设使用主轴硬盘驱动器存储数据,因此它会尽最大努力减少随机访问,并尽可能选择顺序访问。如今,生产中的许多 MySQL 实例都使用 SSD 闪存驱动器,因此这些设计决策的好处已经消失,并且可能会导致一些开销。
现在InnoDB的开发有没有考虑到这一点?是否有用于调整 SSD 驱动器性能的配置选项?
有一些直接影响 SSD 与旋转驱动器的可调参数:
innodb_flush_neighbors = OFF -- since there is no "rotational delay"
innodb_random_read_ahead = OFF
innodb_io_capacity = 2000
innodb_io_capacity_max = 4000
innodb_page_size - Using a smaller size _may_ help if _all_ tables are
accessed randomly _and_ have small rows. (not for the faint of heart)
我没有 "good" 个数值,它们取决于 SSD/Flash 的性能特征。
可能还有更多设置。例如,我不知道 innodb_read_io_threads
和 innodb_write_io_threads
。 (默认 4 个,最多 64 个。)
RAID 控制器上的电池后备写缓存使写入基本上是瞬时的。这也是一个因素
8.0(最新版本)有一些 "cost" 参数适用于磁盘与 RAM 访问。它们是手动可调的。 (对不起,我没有详细资料。)我已经恳求开发人员让他们自己调整。
请记住,如果您是 "at the limit" 此类可调参数,那么在系统崩溃之前您将没有多少空间。
请记住,优化索引和查询经常会给您带来最大的收益。