我最近设置了一个 TrueNAS 存储服务器,并在其上托管了一个 MySQL 数据库。它大约有 3GB;我不太关心它占用了多少空间。
默认情况下,TrueNAS 在 ZFS 文件系统上启用 LZ4 压缩。此磁盘上没有其他内容。
我想知道这种磁盘压缩是否会对数据库的性能产生显著的影响,我是否应该使用其他的东西(可能是 MySQL 自己的压缩系统)或者根本不使用任何东西。
答案1
在性能方面,这很可能不会产生任何影响。除非您的工作负载主要依赖于执行全表扫描,否则 MySQL 性能受 IOPS/磁盘延迟控制。如果您通过网络 (TrueNAS) 执行这些读写操作,那么这将成为性能瓶颈。
需要记住的另一个细节是 ZFS 压缩是按块进行的,并执行启发式 (字节窥视) 来确定压缩是否会对每个块产生实质性影响。因此,根据您存储在 MySQL 中的数据,它甚至可能未被压缩。
话虽如此,众所周知,ZFS 上的 MySQL 需要进行调整才能表现良好 - 请参阅: https://www.percona.com/blog/mysql-zfs-performance-update/
答案2
根据我的个人经验和页ZFS 的压缩对整体性能的影响微不足道。当然这取决于您的硬件 - 较慢的 CPU 可能会导致操作缓慢,但在我看来,在当代硬件上您不会遇到任何问题。最后,您可以随时为数据库池禁用它。
关于 MySQL 压缩 - 尝试压缩已压缩的数据并不是一个好习惯。这会导致(一般来说)使用的磁盘空间增加。
在调整 MySQL 大小时,请记住记录(块)的大小,默认情况下为 128kb(在 Solaris 中)