• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • OLTP工作负载的压缩

    传统上,InnoDB压缩功能主要推荐用于只读或以只读为主的工作负载,例如在数据仓库配置中。SSD 存储设备的兴起,这种快速但相对较小和昂贵的价格使得压缩对OLTP工作负载也很有吸引力:高流量的交互式网站可以通过使用压缩表来减少其存储需求和每秒的I / O操作(IOPS)。那些频繁的应用程序INSERTUPDATEDELETE操作。

    这些配置选项使您可以调整特定MySQL实例的压缩工作方式,并着重于写密集型操作的性能和可伸缩性:

    • innodb_compression_level使您可以提高或降低压缩程度。较高的值可让您将更多数据放入存储设备,但要以压缩期间更多的CPU开销为代价。较低的值可以在存储空间不是很关键的情况下减少CPU开销,或者您希望数据不是特别可压缩的。
    • innodb_compression_failure_threshold_pct指定更新压缩表期间压缩失败的截止点。超过此阈值后,MySQL开始在每个新的压缩页面中保留额外的可用空间,从而动态调整可用空间的数量,直至达到由指定的页面大小的百分比innodb_compression_pad_pct_max
    • innodb_compression_pad_pct_max使您可以调整每个页面内保留的最大空间量,以记录对压缩行的更改,而无需再次压缩整个页面。值越高,无需重新压缩页面即可记录更多更改。仅当指定百分比的压缩操作在运行时“失败”时,MySQL才对每个压缩表中的页面使用可变数量的可用空间,这需要昂贵的操作来拆分压缩页面。
    • innodb_log_compressed_pages您可以禁用的写入图像再压缩页面到重做日志。对压缩数据进行更改时,可能会发生重新压缩。默认情况下启用此选项,以防止zlib在恢复过程中使用不同版本的压缩算法时可能发生的损坏。如果确定zlib版本不会更改,请禁用innodb_log_compressed_pages以减少修改压缩数据的工作负载的重做日志生成。

    因为处理压缩数据有时涉及同时将页面的压缩版本和未压缩版本同时保留在内存中,所以在将压缩与OLTP样式的工作负载一起使用时,请准备增加innodb_buffer_pool_size配置选项的值。