MySQL 8.4 版本说明
磁盘数据表的变长列占用固定大小的空间。对于每一行,这等于存储该列的最大可能值所需的存储空间。
有关计算这些值的常规信息,请参见 第 13.7 节,“数据类型存储需求”。
可以通过查询信息模式
FILES
表来估计数据文件和回滚日志文件中的可用空间。有关更多信息和示例,请参见 第 28.3.15 节,“INFORMATION_SCHEMA FILES 表”。注意OPTIMIZE TABLE
语句对磁盘数据表没有任何影响。磁盘数据表中的每一行在内存中使用 8 个字节来指向存储在磁盘上的数据。这意味着,在某些情况下,将内存中的列转换为基于磁盘的格式实际上会导致更大的内存使用量。例如,将
CHAR(4)
列从内存中基于格式转换为基于磁盘的格式,会使每行使用的DataMemory
数量从 4 字节增加到 8 字节。
重要
使用 --initial
选项启动集群不会删除磁盘数据文件。您必须在执行集群的初始重启之前手动删除这些文件。
通过最小化磁盘查找次数,可以提高磁盘数据表的性能,方法是确保 DiskPageBufferMemory
的大小足够。您可以查询 diskpagebuffer
表来帮助确定是否需要增加此参数的值。