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;
#####
分享到:
相关推荐
MySQL批量对表增加指定字段,会快速实现批量字段的添加。写了2个存储存储过程,执行即可。方便快速!
在MySQL数据库管理中,添加字段是一项常见的操作,用于在已有的数据表中增加新的列来扩展数据表的结构。这通常发生在数据需求发生变化或者需要记录更多相关信息时。本篇文章将详细探讨如何在MySQL中添加字段,以及...
MySQL大表增加字段是一项常见的数据库管理任务,但随着表数据量的增长,直接在表结构上进行修改可能会引发性能问题甚至导致长时间的服务中断。为了解决这个问题,Percona Toolkit提供了强大的工具,如`pt-online-...
在MySQL中,对大数据表进行字段添加是一项需要注意操作流程的任务,因为直接使用`ALTER TABLE`语句可能会导致长时间的表锁定,影响线上服务的稳定性。以下是一种常见的安全且尽可能减少数据丢失的风险的策略: 1. *...
当然现在大多都是用phpmyadmin或mysql图形化操作工具,更方法,这样的是临时使用的,或没有图形界面的方法。大家可以使用上述的图形化工具操作。下面推荐几款软件:mysql图形管理工具Navicat 8.2中文免费版SQL-...
一种解决方法是在插入前检查主键是否已存在,如果存在则跳过或更新该记录。 标签中提到了CMS(内容管理系统),这意味着这个程序可能用于网站数据迁移。在实际操作中,确保在执行复制操作时网站处于维护模式,避免...
在别人基础上修改了一下。 感性原作者的奉献 一起贡献都归功与原作者
在MySQL中,当涉及到表结构的修改,如添加、删除或更改字段,数据库系统会采取一定的策略来完成这些操作。在标题"关于表添加多个字段的速度问题1"中,讨论的核心是表结构更新时的速度优化。描述中提到,MySQL在修改...
1. 创建两个转换:一个用于获取表信息(方法1、方法2),另一个用于处理单个表并添加字段(方法1或方法2的子转换)。 2. 在获取表信息的转换中,使用`Table Input`查询源数据库中的表名,并通过`Filter Rows`和`...
自定义添加表中字段则是通过在已有的数据表上进行ALTER TABLE操作。假设你想要在上面创建的`users`表中添加新的字段,如`username`和`email`,可以这样做: ```php M()->execute("ALTER TABLE `users` ADD `...
以上这篇mysql更新一个表里的字段等于另一个表某字段的值实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。 您可能感兴趣的文章:Sql查询MySql数据库中的表名和描述表中...
MySQL 字段类型说明 MySQL 是一个功能强大且广泛使用的关系型数据库管理系统,它支持大量的列类型,可以被分为数字类型、日期和时间类型以及字符串(字符)类型。本节对 MySQL 字段类型进行了详细的说明,包括每个...
MyISAM表不重用删除的最大编号,而HEAP表(从MySQL 4.1开始支持自增)和BDB表则可以重用。InnoDB表不支持通过`CREATE TABLE`或`ALTER TABLE`语句改变自增初始值,且删除的自增值不可重用。 创建复合索引可以在同...
1、加字段: alter table 表名 ADD 字段名 类型; eg: alter table sys_cwzd ADD SCCLLJ VARCHAR2(50); 2、加备注: comment on column 表名.字段名 is '备注名'; eg: comment on column sys_cwzd.SCCLLJ is ...
在数据库管理领域,MySQL是广泛使用的开源关系型数据库系统,尤其在处理大数据量时,其性能优化和高效表设计显得尤为重要。本篇文章将深入探讨针对MySQL大表的性能优化策略以及如何遵循高性能的表设计规范。 一、...
本文实例讲述了mysql创建存储过程实现往数据表中新增字段的方法。分享给大家供大家参考,具体如下: 需求: 往某数据库的某个表中新增一个字段(若该字段已存在,则不做操作;若该字段不存在,则新增) 百度了n久,...
在MySQL数据库中,更新表中某个字段并追加字符串是一个常见的操作,这通常涉及到`UPDATE`语句和`CONCAT`函数的使用。`CONCAT`函数用于将多个字符串拼接成一个新的字符串。例如,标题中提到的方法是更新名为`表名`的...
MySQL 字段约束是指在 MySQL 中对字段的定义时添加的约束或修饰符,它们可以用来增加对输入数据的约束。今天我们来看一下 MySQL 的字段约束:NULL 和 NOT NULL 修饰符、DEFAULT 修饰符、AUTO_INCREMENT 修饰符。 ...