mysql unique checks,MySQL“set unique_checks”,“set foreign_key_checks”对比“改变表格禁用键”…

  • Post author:
  • Post category:mysql


We’re having a problem where a mysqldump script is spending 90% of it’s time populating a small handful of the tables it deals with. Eliminating FK’s and indexes eliminates the speed problem, but is not an acceptable solution.

The dump script does have:

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;

/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;

Can we expect any different behavior from ALTER TABLE foo DISABLE KEYS?

Also, is disable keys session-scoped or is it permanent until I re-enable it? Can I disable keys from one mysql session and have it effect the import issued from another session?

解决方案

Yes, you should get significant benefits out of DISABLE KEYS. It isn’t session-scoped, it’s a table property, so your keys will be dead for everybody until you do ENABLE KEYS.