mysql - 在不锁定数据库的情况下创建索引

标签 mysql rake ruby-on-rails

我有一个包含 10+ 百万行的表。我需要在单个列上创建索引,但是,创建索引需要很长时间,以至于我获得了对表的锁定。

可能需要注意的是,索引是作为“rake db:migrate”步骤的一部分创建的……如果可行的话,我并不反对手动创建索引。

更新:我想我应该提到这是一个经常写入的表。

最佳答案

MySQL NDBCLUSTER 引擎可以在不锁定对表的写入的情况下在线创建索引。然而,使用最广泛的 InnoDB 引擎不支持此功能。另一个免费和开源的 DB Postgres 支持“并发创建索引”。

关于mysql - 在不锁定数据库的情况下创建索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3134342/

相关文章:

ruby-on-rails - 保存使用 RMagick 使用 Rails 和 CarrierWave 创建的图像

php - 将逗号分隔列表从 Controller 传递到模型

mysql pyramid initialise db 使用有效数据生成无效语法

ruby-on-rails - 为什么这个查询在 Heroku 上不起作用?

Rake "no such file to load -- java",即使 `which ruby` -> jruby

routes - 有人有 Rake 任务来查找 Sinatra 生成的路由吗?

ruby-on-rails - Rails5 API模式应用程序和非API模式应用程序是否相互共享代码?

php - 如何在 PHP 中为 LOAD DATA 语句提供文件和目录名称

mysql - 在MYSQL中设置日期参数

ruby - 为什么这个 require 从 rake 中失败但在显式运行时成功?