Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

B.3.3.4 MySQL如何处理满磁盘

本节描述了MySQL如何响应磁盘满错误(例如 设备上没有剩余空间),以及配额超出错误(例如 写入失败用户块限制达到)。

本节适用于写入 MyISAM 表。它也适用于写入二进制日志文件和二进制日志索引文件,除了将 记录 understanding as 事件

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

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

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

要缓解这个问题,采取以下操作:

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

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

  • 其他线程可能正在等待引起磁盘满条件的表。如果您有多个 锁定 线程,杀死等待磁盘满条件的线程将使其他线程继续。

对前述行为的例外是使用 REPAIR TABLEOPTIMIZE TABLE 或在 LOAD DATAALTER TABLE 语句后创建索引时。所有这些语句可能创建大型临时文件,如果不处理,将对系统造成很大的问题。如果磁盘在 MySQL 执行这些操作时变满,它将删除大型临时文件并将表标记为崩溃。例外是,对于 ALTER TABLE,旧表将保持不变。