2016-04-25 72 views
0

我的CloudSQL數據庫中有一個8Go表(現在)沒有主鍵。 它由每列20列5200萬行組成。錯誤1114:在雲數據庫中插入AUTO_INCREMENT時表已滿。

我想補充一個,因爲我將刪除重複而這樣做沒有主鍵是太費時的MySQL

不過,我有問題,使這個跑,我想知道如果我實際上是以最有效的方式做到這一點。

我想用下面一行添加此主鍵:

ALTER TABLE mytable ADD COLUMN id INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST 

我預計這個請求由幾百MB,以增加我的數據庫的大小,並相當迅速地運行。

然而,當我跑的請求,我看到了數據庫的使用增加了不少(+ 14 GB),並在2小時的運行時間後,我看到了以下錯誤消息:

「錯誤1114:該表'mytable'已滿「。

出現此錯誤時,數據庫存儲使用恢復到正常的,但沒有改變已作出MYTABLE

我的問題是: - 什麼是CLOUDSQL想,當我啓動我的要求做,以及如何來這需要他這麼久? - 我可以通過CloudSQL更快地執行我的請求嗎?我錯過了什麼?

回答

0

我仍然有關於這個請求所發生的事情沒有任何線索。

ALTER TABLE mytable ADD COLUMN id INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST 

但這種替代工作:

  • 創建具有完全相同的字段複製表比MYTABLE加上AUTO_INCREMENT
  • 插入第一個表的每一條記錄到這個新表

這種替代實際上比一個增加較少的存儲我用我的問題(最終失敗)