加快alter table】的更多相关文章

mysql的alter table操作的性能对于大表来说是个大问题.mysql大部分修改表结构操作的方法都是用新的结构创建一个 新表,从旧表中查出数据插入新表,然后在删除旧表.这样的操作很耗费时间,而且还有可能中断mysql服务. 这里推荐一种方法来提高alter table的操作速度.(请注意数据备份) 修改数据表的.frm文件,步骤如下: 1.创建一个有相同结构的新表,并进行所需修改(例如增加ENUM常量值). 2.执行FLUSH TABLES WITH READ LOCK.加锁禁止打开所有…
mysql的alter table操作的性能对打表来说是个大问题. mysql执行大部分修改表结构的方法是用新的结构创建一个空表,从旧表中查出所有的数据插入新表,然后删除旧表.这样操作就可能需要花费很长时间,如果内存不足而表又很大,而且还有很多索引的情况下尤其如此. 一般而言大部分AlterTable操作将导致mysql服务中断. 不是所有的alter table操作都会引起表重建 alter table允许使用alter column,modify column和change column语句…
如果您不了解ALTER TABLE的语法,可以先参考: http://dev.mysql.com/doc/refman/5.1/en/alter-table.html 使用ALTER TABLE 可以修改一张表的结构.比如,添加或者删除一个字段,创建或者删除一个索引,修改一个字段的类型,或者重命名一个字段,或者表的一些元信息.我们还可以通过ALTER TABLE来修改表引擎. 在大多数情况下,ALTER TABLE通过建立一个原表的拷贝,并在拷贝上修改,然后删除原表,最后修改拷贝的名称为原表名来…
nvicat-->mysql表设计-->创建索引. (1)使用ALTER TABLE语句创建索引,其中包括普通索引.UNIQUE索引和PRIMARY KEY索引3种创建索引的格式: PRIMARY KEY 主键索引:mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) NIQUE唯一索引:mysql>ALTER TABLE `table_name` ADD UNIQUE ( `column` ) INDEX普通索引…
首先我建议你在对MySQL表做DDL操作时: 1 执行 show processlist 查看,要操作的表(数据库对象)是否处于锁状态 if("未锁定") { 执行DDL语句 }else { 三思后行 } 作为一个程序猿,随着开发的进行,我们要面临需求的变更. 随之而来的有可能就是表结构的变化--字段的增加,字段数据类型的更新. 此时此刻,我就在Alter Table面前跪了. My Sql 中 Waiting for table metadata lock,主要发生在你在Alter…
1.修改表名:alter table 原表名 rename to 新表名; 2.新增列:alter table 表名 add column 列名 varchar(20) ; 3.删除列:alter table 表名 drop column 列名; 4.修改列名: alter table 表名 change 原列名 新列名 varchar(20) ; 5.修改列属性:alter table 表名 modify 列名 varchar(20) ;…
在工作中常遇到要维护数据库表的列,这里主要介绍sql语句中的ALTER TABLE 语句.ALTER TABLE 语句用于在已有的表中添加.修改或删除列. 如需在表中添加列,请使用下列语法: ALTER TABLE table_name ADD column_name datatype 要删除表中的列,请使用下列语法: ALTER TABLE table_name DROP COLUMN column_name 注释:某些数据库系统不允许这种在数据库表中删除列的方式 (DROP COLUMN c…
当我用Navicat尝试修改已有记录的mysql数据表的主键为自动增长时,报出以下错误 1602 ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry ’1′ for key ‘PRIMARY’ 解决方法: 第1步:将主键字段值为0的那条记录值改为其他大于0且不重复的任意数 第2步:修改主键字段为auto_increment 第3步:把刚才修改过的那条记录的值还原 来自:http://blog.s…
--需求有变,需要往t_login表的f_userName字段添加外国人名,之前设置的varchar(10)不够,商议决定改成varchar(30),执行的时候,提示消息 索引'uq_f_userName' 依赖于 列'f_userName'.由于一个或多个对象访问此列,ALTER TABLE ALTER COLUMN f_userName 失败.--原来,之前为了防止f_userName重复,添加了唯一索引uq_f_userName.--进行如下操作后,问题妥妥解决--表名:t_login(登…
ALTER TABLE 解析实例: SQL: 1.增加列 2.增加列,调整列顺序 3.增加索引 4.增加约束 5.增加全文索引FULL-TEXT 6.改变列的默认值 7.改变列名字(类型,顺序) 8.不改变列名字 9.删除列 10.删除主键 11.删除索引 12.删除约束 13.改表名 14.改变字符集     创建一张表 CREATE TABLE t1 (a INTEGER,b CHAR(10));   1. 增加列 格式: ADD [COLUMN] (col_name column_defi…