Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


B.3.3.4 MySQL 如何处理满磁盘

本节描述了 MySQL 对于磁盘满错误(如““无空间设备””)和配额超出错误(如““写入失败””或““用户块限制达到””)的响应。

本节适用于 MyISAM 表的写操作,也适用于二进制日志文件和二进制日志索引文件,except that references to ““行” 和 ““记录” should be understood to mean ““事件.””

当磁盘满条件发生时,MySQL 做以下操作:

  • 每分钟检查一次是否有足够空间写当前行。如果有足够空间,它继续像什么都没发生一样。

  • 每 10 分钟它将一个条目写入日志文件,警告磁盘满条件。

以缓解问题,请执行以下操作:

  • 要继续,您只需要释放足够的磁盘空间插入所有记录。

  • 或者,使用 mysqladmin kill。线程在下一个检查磁盘时(一分钟)被中止。

  • 其他线程可能正在等待导致磁盘满条件的表。如果您有多个““锁定” 线程,杀死等待磁盘满条件的线程使得其他线程继续运行。

前述行为的例外情况是,当你使用REPAIR TABLEOPTIMIZE TABLE,或者在LOAD DATAALTER TABLE语句后创建索引。这些语句都可能创建大型临时文件,如果不被清理,会对系统造成很大的问题。如果磁盘满了,而 MySQL 正在执行这些操作,它将删除大型临时文件,并标记表格为崩溃。唯一的例外是ALTER TABLE,老表格保持不变。