2016-04-25 77 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
  • 插入第一个表的每一条记录到这个新表

这种替代实际上比一个增加较少的存储我用我的问题(最终失败)