KCD*_*KCD 12 mysql innodb database-tuning mysql-5.5
MySQL 的kill 警告文档:
警告
杀死一个表上的
REPAIR TABLEorOPTIMIZE TABLE操作会MyISAM导致表损坏且无法使用。对此类表的任何读取或写入都会失败,直到您再次对其进行优化或修复(无中断)。
那是针对 MyISAM 的。
杀死OPTIMIZE TABLE针对 InnoDB 表运行的进程是否也不安全?
Abd*_*naf 10
根据 MySQL 认证指南:
OPTIMIZE TABLE 语句通过对 MyISAM 表进行碎片整理来清理它。这涉及回收因删除和更新而产生的未使用空间,以及合并已拆分和非连续存储的记录。OPTIMIZE TABLE 还会对无序的索引页进行排序并更新索引统计信息
也适用于 InnoDB 表,但映射到重建表的 ALTER TABLE。这将更新索引统计信息并释放聚集索引中的空间。
所以在 InnoDB 的情况下:
Innodb 是 ACID 兼容的,优化表只是将所有记录复制到一个新表中
如果您在它运行时尝试杀死它,您将不会丢失任何记录。
此外,在 InnoDB 的情况下,innodb_defragment=1不需要 ROLLBACK,因为在这种情况下OPTIMIZE TABLE是增量的。
| 归档时间: |
|
| 查看次数: |
16715 次 |
| 最近记录: |