【问题标题】:What happens if you change innoDB compression level如果您更改 innoDB 压缩级别会发生什么
【发布时间】:2021-08-25 13:42:53
【问题描述】:

目前有几个表 ROW_FORMAT=COMPRESSED 至少有 200 GB 大小,我想知道我是否可以将当前默认 (6) 的 innodb_compression_level 更改为 3。当前行会发生什么情况?这只会影响新的和更新的行吗?

其背后的动机是,对于某些表,我们在插入速度(数据仓库表)方面面临相当多的问题,并且在研究所有指标时,很明显 CPU 已达到其极限(因为它都在 1 个核心上运行) 所以我们希望通过降低压缩级别来减轻cpu的负担

【问题讨论】:

  • 我不喜欢 MySQL 的压缩——磁盘空间只缩小了 2 倍;而缓冲池中所需的空间增加了!更好:确保 Fact 表中的数据类型尽可能小,并且适当的列已被规范化。提供SHOW CREATE TABLE 以供进一步批评。

标签: mysql query-optimization innodb percona


【解决方案1】:

好的。我已经找到了答案。压缩级别越高,插入时需要的 CPU 越多。由于我们只使用 1 个线程(1 个显式事务),CPU 当然需要做更多的工作,因此压缩对插入速度有直接的负面影响。

好消息是:您可以更改设置,它只会影响新数据(数据页),因此对我们来说,通过将设置 innodb_compression_level 更改为 3 进行了改进,所有新插入现在都更快了。

【讨论】:

    猜你喜欢
    • 2011-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-24
    • 1970-01-01
    • 2019-01-12
    • 2020-11-15
    • 1970-01-01
    相关资源
    最近更新 更多