如果您在mysql INNODB表中禁用了键(挂起索引),那么这个设置最后会持续多久?
对于像这样的查询:
ALTER TABLE users DISABLE KEYS;
在脚本的末尾重新启用密钥? 或者他们持续到你明确地转动索引?
Fine Manual (非常值得阅读)表明,该语句的效果会持续到执行相应的ALTER TABLE ... ENABLE KEYS语句。
实际上, ALTER TABLE … DISABLE KEYS和ALTER TABLE …启用键不起作用!
我在2011年2月13日回顾了这个问题。
我做了一些额外的挖掘,从InnoDB的母公司InnoBase Oy(在Oracle Borg 9中获得7)之前发现,事实确实如此。
这个链接build议做DISABLE KEYS和禁用外键在一起。 虽然我觉得这两者都是不必要的,但这显然是为某人工作的。
更新2011-07-18 12:35 EDT
这是一个非常好的问题,因为它暴露了MySQL中剩下的一个邪恶。 mysqldump程序在每个表的创build和加载周围都放弃了DISABLE KEYS和ENABLE KEYS,而不考虑存储引擎。 由于DISABLE KEYS和ENABLE KEYS对于InnoDB表无法正常工作(最好的情况是没有效果),因为MyISAM能够正常工作,MySQL社区应该更好地logging这个未知的事实。 噢,MySQL是在被称为Oracle的银河帝国中。 我将不会屏住呼吸文件的变化即将到来。