我有一个包含 10+ 百万行的表。我需要在单个列上创建索引,但是,创建索引需要很长时间,以至于我获得了对表的锁定。
可能需要注意的是,索引是作为“rake db:migrate”步骤的一部分创建的……如果可行的话,我并不反对手动创建索引。
更新:我想我应该提到这是一个经常写入的表。
最佳答案
MySQL NDBCLUSTER 引擎可以在不锁定对表的写入的情况下在线创建索引。然而,使用最广泛的 InnoDB 引擎不支持此功能。另一个免费和开源的 DB Postgres 支持“并发创建索引”。
关于mysql - 在不锁定数据库的情况下创建索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3134342/