如何在将数据导入数据库时停止mysql索引。我有一个Rails应用程序,用户可以从文件中导入数据。我添加了一些索引以加快速度 搜索电话号码和电子邮件地址的结果。
我的联系模式与其他模型有更多关系,我为了一个更简单的例子而去掉了:
create_table "contacts", :force => true do |t|
t.integer "user_id"
t.integer "status"
t.integer "gender", :default => 0, :null => false
t.string "salutation", :null => false
t.string "title"
t.string "first_name", :null => false
t.string "last_name", :null => false
t.binary "phone"
t.binary "email"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
:
:
end
add_index "contacts", ["phone"], :name => "index_contacts_on_phone"
add_index "contacts", ["email"], :name => "index_contacts_on_email"
导入需要很长时间。我可以在导入数千个联系人时阻止MySQL建立索引吗?导入后我将启用索引。有没有一种首选的方法呢?
谢谢,丹尼尔
答案 0 :(得分:0)
实际上,您可以同时执行这两项任务。 你听说过sidekiq吗?它在后台运行您想要的过程。所以mysql索引在后台。您必须为索引创建一个流程工作者,因此它不会中断您的文件导入。
https://github.com/mperham/sidekiq
只需完成他们的基础知识,你就会得到它的要点。