InnoDB通常假设使用主轴硬盘来存储数据,因此它尽可能地减少随机访问,并尽可能选择顺序访问。如今,生产中的许多MySQL实例都使用SSD闪存驱动器,因此这些设计决策的好处消失了,可能会带来一些开销。
InnoDB的当前发展是否考虑到了这一点?是否有用于调整SSD驱动器性能的配置选项?
答案 0 :(得分:1)
有一些可调参数直接影响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)
我没有"好"数值的数字,它们取决于SSD / Flash的性能特征。
可能有更多设置。例如,我不知道innodb_read_io_threads
和innodb_write_io_threads
。 (默认值4,最大64.)
RAID控制器上的电池备份写入缓存使写入基本上是即时的。这也是一个因素
8.0(最新版本)有一些"成本"适用于磁盘与RAM访问的参数。它们是手动可调的。 (对不起,我没有详细说明。)我恳请开发人员让他们自我调整。
请记住,如果你是'#34;在极限"在这种可调参数中,你在系统崩溃之前就没有多大的空间。
请记住,优化索引和查询经常可以为您带来最大的收益。