mariadb mad 文件占用硬盘中的所有空间

mariadb mad 文件占用硬盘中的所有空间

我的磁盘已满,tmpdir 中的一个 .MAD 文件占用了文件系统上的所有空间(110G 中的 50G)

来自日志:

[警告] mysqld:磁盘已满,写入“/var/tmp/#sql_b6f_0.MAD”(错误代码:28)。正在等待某人释放空间

我执行了 service mysqld stop,它成功了,但是没有删除文件。我执行了 service mysqld start,但是由于可用空间不足而失败。

手动删除文件安全吗?如何设置 mad 文件的最大大小以避免此问题?

答案1

将 DBA 认为适合连接的最大行数乘以 10,并将其设置为max_join_size

tmp_disk_table_size这样您的文件系统就不会超过 90%。

告诉编写相关查询的人您为保持可用性而设置的限制。讨论编写更高效的查询与投入内存和存储空间解决问题的成本效益。

现在您知道了临时表的名称,可以进一步调整它们。摘自 Stack Overflow:如何限制临时表的大小?

答案2

该文件是 MariaDB 写入磁盘的临时表,因为它太大而无法保存在内存中。如果您已停止数据库,则导致创建该表的查询将不再运行,因此可以安全地删除该文件。但您还需要调查创建该文件的原因并修复潜在问题,否则这种情况会再次发生。

相关内容