2013-02-07 115 views
0

我有一個SQL文件有90000更新查詢MySQL的更新查詢

UPDATE xxxx SET price='x.xx', wholesale_price='y.yy' WHERE reference='azerty'; 

我嘗試更新我的數據庫:

mysql -u user -ppassword ecommerce < update_prices-1360224708.sql 

但2小時後半......我的更新不完成了......並且運氣不好,在我的SSH會話期間我的互聯網被切斷了,我確信更新失敗。

所以......我決定把我的失敗,對10個文件(每個文件10000行,重量= 1MO)......但與phpMyAdmin,過多的請求......

多久採取90,000個請求?

我失敗了嗎?當我使用「一行」時...它起作用,我確信文件沒有錯誤。

有人有想法嗎?

+1

是'reference'列索引? –

+1

在*理論*中,它不應該花費那麼長時間,並且在'reference'(或者small-ish'xxxx'表)上有一個索引,你是否1)有其他人連接到數據庫可能有鎖,或者2 )有一個觸發器,每次更新都需要永久保存。 –

+0

我沒有索引列參考。我應該有索引嗎?我該如何設置? –

回答

2

創建引用索引:

CREATE INDEX ix_reference ON tablename (reference); 
+0

是的,這是解決方案。我的參考專欄沒有索引。添加此索引後,90,000個查詢在不到10分鐘的時間內工作...是=) –