为什么 MariaDB/InnoDB 在 Linux 上读取 16KB 块中的数据库文件?
Why is MariaDB/InnoDB on Linux reading DB files in 16KB blocks?
SUBJ,还有,它是可配置的吗? Debian 软件包二进制文件被剥离了符号,我只能在 perf
...
的输出中看到 pread64(..., 16384,...)
是的,InnoDB 页面大小是可配置的。默认情况下为 16KB,因为这对大多数应用程序来说是一个很好的折衷方案。它允许行足够大以供典型使用,但它将 I/O 的单位设置为适当的细粒度大小。
见https://mariadb.com/resources/blog/does-innodb-page-size-matter/
在特定的工作负载下,使用大于或小于 16KB 的页面大小可能会带来较小的性能优势,但前提是您需要针对读取或写入优化磁盘 I/O。
一般来说,最好通过增加分配给缓冲池的 RAM 来减少磁盘的读取或写入频率I/O。如果您不需要那么频繁地优化实际的 I/O,就没有那么多的必要了。
P.S.: 我从 2001 年开始使用 MySQL,但我从未遇到过需要使用自定义页面大小的情况。
SUBJ,还有,它是可配置的吗? Debian 软件包二进制文件被剥离了符号,我只能在 perf
...
pread64(..., 16384,...)
是的,InnoDB 页面大小是可配置的。默认情况下为 16KB,因为这对大多数应用程序来说是一个很好的折衷方案。它允许行足够大以供典型使用,但它将 I/O 的单位设置为适当的细粒度大小。
见https://mariadb.com/resources/blog/does-innodb-page-size-matter/
在特定的工作负载下,使用大于或小于 16KB 的页面大小可能会带来较小的性能优势,但前提是您需要针对读取或写入优化磁盘 I/O。
一般来说,最好通过增加分配给缓冲池的 RAM 来减少磁盘的读取或写入频率I/O。如果您不需要那么频繁地优化实际的 I/O,就没有那么多的必要了。
P.S.: 我从 2001 年开始使用 MySQL,但我从未遇到过需要使用自定义页面大小的情况。