暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

[ACDU 翻译] MySQL 15.9.1.1 表压缩概述

原创 由迪 2022-05-13
280

15.9.1.1 表压缩概述

由于处理器和高速缓存的速度比磁盘存储设备的增长速度更快,因此许多工作负载都是 磁盘绑定的。数据 压缩可实现更小的数据库大小、更少的 I/O 和更高的吞吐量,同时提高 CPU 利用率的成本很低。压缩对于读取密集型应用程序特别有价值,在具有足够 RAM 以将常用数据保存在内存中的系统上。

创建的InnoDBROW_FORMAT=COMPRESSED可以 在磁盘上使用比配置 值更小的页面大小。innodb_page_size较小的页面需要较少的 I/O 来读取和写入磁盘,这对于 SSD设备尤其有价值。

压缩页面大小通过 CREATE TABLEor 参数指定。不同的页面大小要求将表放置在 file-per-table 表 空间或通用表空间中,而不是放在 系统表空间中,因为系统表空间不能存储压缩表。有关更多信息,请参阅 第 15.6.3.2 节,“每个表的文件表空间”第 15.6.3.3 节,“通用表空间”ALTER TABLE KEY_BLOCK_SIZE

无论值如何,压缩级别都是相同的 KEY_BLOCK_SIZE。当您为 指定较小的值时KEY_BLOCK_SIZE,您将获得越来越小的页面的 I/O 优势。但是,如果您指定的值太小,则当数据值无法压缩到足以容纳每页中的多行时,重新组织页面会产生额外的开销。KEY_BLOCK_SIZE根据每个索引的键列的长度,表的大小有一个硬性限制。指定的值太小, CREATE TABLEor ALTER TABLE语句会失败。

在缓冲池中,压缩数据保存在小页面中,页面大小基于该KEY_BLOCK_SIZE 值。为了提取或更新列值,MySQL 还使用未压缩数据在缓冲池中创建一个未压缩页面。在缓冲池中,对未压缩页面的任何更新也会重新写回等效的压缩页面。您可能需要调整缓冲池的大小以容纳压缩和未压缩页面的附加数据,尽管在需要空间时将未压缩页面 从缓冲池中逐出,然后在下次访问时再次解压缩。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论