mysql大表更新或则增加字段步骤

WBOY
풀어 주다: 2016-06-07 16:16:12
원래의
1109명이 탐색했습니다.

mysql大表更新或则增加字段方法 MYSQL大表修改结构 Posted on 2012-12-28 15:06 蛇小狼 阅读(43) 评论(0) 编辑 收藏 参考原理依据: http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html#alter-table ALTER TABLE运行时会对原表进行临时复制,在副本上进

mysql大表更新或则增加字段方法
MYSQL大表修改结构
Posted on 2012-12-28 15:06 蛇小狼 阅读(43) 评论(0) 编辑 收藏
参考原理依据:

http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html#alter-table

ALTER TABLE运行时会对原表进行临时复制,在副本上进行更改,然后删除原表,再对新表进行重命名。在执行ALTER TABLE时,其它用户可以阅读原表,但是对表的更新和修改的操作将被延迟,直到新表生成为止。新表生成后,这些更新和修改信息会自动转移到新表上。

注意,如果您在执行ALTER TABLE时使用除了RENAME以外的选项,则MySQL会创建一个临时表。即使数据并不需要进行复制(例如当您更改列的名称时),MySQL也会这么操作。对于MyISAM表,您可以通过把myisam_sort_buffer_size系统变量设置到一个较高的值,来加快重新创建索引(该操作是变更过程中速度最慢的一部分)的速度。

实际问题,对一个上亿数据的表增加字段

实际操作:

#####
create table ppy_myfishinstanceone_bak like ppy_myfishinstanceone;

alter table ppy_myfishinstanceone_bak add column `top_num` int(10) DEFAULT 0;

insert into ppy_myfishinstanceone_bak(member_id,my_fish_tank_id,fish_id,hungry,life,exp,last_calculated,last_potion_used)
select member_id,my_fish_tank_id,fish_id,hungry,life,exp,last_calculated,last_potion_used
from ppy_myfishinstanceone;

drop table ppy_myfishinstanceone;

rename table ppy_myfishinstanceone_bak to ppy_myfishinstanceone;
#####
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿