我有一个2G多的表,里面有5,984,902条记录,我想新增一个字段,可是很慢,执行不了.请问怎么办?
解决方案 »
- using delete
- mysql中这样讲一个写好的数据表压缩成SQL语句,求资料,新手 很新的那种
- 急啊,请教用mysql语句怎么导入*.sql文件?
- mysql保存不了二进制数据
- SQL 有个关于 update 正则替换的问题请教!谢谢解答
- 关于mysql的sleep进程的用处
- 一道数据库面试题
- 关于服务器系统更新重启后PostgreSQL8.1服务无法启动
- sql server2008里的3千万数据怎么快速的导入到mysql中
- mysql修改root密码忘记执行flush privileges怎么办?
- mysql 有没有类似sqlserver 的 tl-sql 功能
- mysql有什么方法可以自动记录死锁情况
---------
那是肯定的啦
中间io量那么大
1。另建一新表
2。复制数据
3。删除原表
4。更名新表为原表。
你增加字段肯定有默认值或者限制。增加字段时候,先不要增加默认值或者相关限制,之后统一update 默认值或者增加相关限制。
=============================ALTER TABLE运行时会对原表进行临时复制,在副本上进行更改,然后删除原表,再对新表进行重命名。在执行ALTER TABLE时,其它用户可以阅读原表,但是对表的更新和修改的操作将被延迟,直到新表生成为止。新表生成后,这些更新和修改信息会自动转移到新表上。注意,如果您在执行ALTER TABLE时使用除了RENAME以外的选项,则MySQL会创建一个临时表。即使数据并不需要进行复制(例如当您更改列的名称时),MySQL也会这么操作。对于MyISAM表,您可以通过把myisam_sort_buffer_size系统变量设置到一个较高的值,来加快重新创建索引(该操作是变更过程中速度最慢的一部分)的速度。