paip.解决 数据库mysql增加列 字段很慢添加字段很慢
#环境如下:
mysql5.6    数据仅仅3w
alter table xxx add column yyy int default 0;
添加字段很慢,好几份中都没有好。。

#原因以及解决
[SQL] alter table grejx_def add column flag12 int default 0;
受影响的行: 0
不是那种lock--copoy--rewrite的方式.effeic row sh 0 ,为甚还是这么慢的是??
Oracle 11g的快速加字段功能就是好啊..

数据结构紊乱兰,只要不个table 优化给挂走ok兰。。
字谣0.3s走ok兰..

作者 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax

#mysql数据库添加字段或者修改结构过程如下
由于mysql在线ddl(加字段、加索引等修改表结构之类的操作)过程如下:

A.对表加锁(表此时只读)
B.复制原表物理结构
C.修改表的物理结构
D.把原表数据导入中间表中,数据同步完后,锁定中间表,并删除原表
E.rename中间表为原表
F.刷新数据字典,并释放锁

添加字段很慢
alter table grejx_def add column flag int default 0;

#大的数据哈的解决
##停掉mysql服务器来修改表结构。然后进行滚动式更新
Facebook数千台MySQL服务器在过去增加个索引需要几个月的滚动升级(后来他们自己开发了后面提到的工具,只需要几天)

##在加字段之前进行测验mysql是否复制表,以减低应用卡死的风险:
在命令结束之后看看显示“rows affected “的值。例如,这里您可能会看到在做不同类型的DDL操作:

拷贝表结构,然后插入少量的数据。去修改表结构。看影响的行。如果为0,则表示不会拷贝中间表的方式

##关于online-schema-change

是percona推出的一个针对mysql在线ddl的工具

#新的思路(手动执行mysql的过程)
1:手动的创建好修改后的表结构 NEW_TAB。(比如新增字段,修改表字段类型。删除表字段,可以一并一次性搞定)
对于MyISAM表,您可以通过把myisam_sort_buffer_size系统变量设置到一个较高的值,来加快重新创建索引(该操作是变更 过程中速度最慢的一部分)的速度。
2:   选择性的将旧表OLD_TAB数据插入到修改后的表。(这里需要注意的是海量数据的处理。可以将表记录按照主键分批进行插入处理,其实在如果分表处理的话,在业务代码中也是可以进行修改处理的,分而治之。)

3:rename表名称。 (这里需要注意的是RENAME过程中的锁表,可以在业务空闲的凌晨晚上进行处理)。

#参考
mysql在线修改表结构大数据表的风险与解决办法归纳 - 王滔 - 博客园.htm
一个资料介绍online-schema-change这个工具,
MYSQL 在线DDL操作是否copying data - zuoxingyu - 博客园.htm

paip.解决 数据库mysql增加列 字段很慢添加字段很慢相关推荐

  1. mysql 增加列 before_mysql添加、修改、删除字段

    一.添加字段 1.添加单个字段 格式: ALTER TABLE 表名 ADD COLUMN 字段名(name) 字段类型长度(VARCHAR(20)) 编码规则(CHARACTER SET utf8) ...

  2. greenplum 数据库如何增加列_Greenplum行存与列存的选择以及转换方法-阿里云开发者社区...

    背景 数据在数据库中的存储形式多种多样,比较常见的如 1. PostgreSQL的堆表,以行的形式存储,(当变成字段压缩后的长度超过数据块的四分之一时,会以TOAST的形式存储到TOAST表). 2. ...

  3. mysql增加中文字段_mysql怎么添加字段

    在MySQL中编写sql语句时,会添加字段是非常重要的,例如:已创建表不足以满足要求时,这时就需要增加字段,已达到要求. mysql添加字段的方法: 首先以下面创建的表为例:CREATE TABLE ...

  4. mysql 增加列和注释_MySql给表添加列和注释

    1.给表添加列 alter table supplier_seller add column company_id int null comment '供应主体id'; 默认情况下,添加的列会添加到最 ...

  5. Android GreenDAO 3.0 不修改版本号的情况下增加、删除表、添加字段

    最近项目中使用了GreenDAO的3.0以上的版本,出现需要增加删除表的需求,刚开始用,发现官方对增加和删除的方法是每次去修改数据库版本号,版本一旦升级,那么原来数据库中的表会全部删除再重建.太麻烦, ...

  6. mysql如何加个字段_mysql如何添加字段 | mysql添加字段

    alter table `sysinfo` add `fact_num` int(11); 添加字段并设置默认值: alter table `channel` add `needrestart` in ...

  7. mysql新增字段顺序_mysql 添加字段、删除字段、调整字段顺序 转

    ALTER TABLE - 更改表属性 添加字段: alter table `user_movement_log` Add column GatewayId int  not null default ...

  8. mysql视图怎么加字段_mysql视图添加字段

    mysql视图里面怎么新增一个全新字段,在原来表内没首先,要清楚视图的概念: 视图是一个虚拟表,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据.但是,视图并不在数据库中以存储的数 ...

  9. Android Studio 使用SQLite数据库来创建数据库+创建数据库表+更新表再次往表添加字段

    目录 一.前言 二.SQLite数据库介绍 1.什么是SQLite数据库 2.特点 3.SQLite 操作API 4.SQLite数据类型 三.SQlite数据库的使用 1.创建类继承SQLiteOP ...

  10. oracle增加字段失败,oracle添加字段引起的问题

    author:skate time:2010-05-27 oracle添加字段引起的问题 由于同事在添加了表的字段后,没有重新编译数据库的对象,导致和这个表相关的很多procedure和package ...

最新文章

  1. 95后女生坚持转数学专业,成功直博双一流!网友:这是高手……
  2. js实现线路流动_52期:实现redux与reactredux
  3. 做网页前端遇到的一些问题
  4. How is SAP CDS metadata retrieved from AG3 backend
  5. java自动装箱和拆箱_关于java自动装箱和自动拆箱
  6. android 验证码图片识别_图片验证码的识别技术
  7. 女孩和程序员相亲,吃饭消费了380,他没结账就先走,晚上收到微信愣了
  8. 设置开机不自动进入锁屏状态
  9. 暗黑破坏神3网站设计欣赏
  10. SpringBoot Spring Cloud项目学习汇总
  11. 09年高考零分作文:兔子,你就是一个牛B
  12. 2022全国水下机器人大赛国际线上赛来啦!“水下感知赛、通信赛”等你来战!
  13. matlab中饼图绘制程序,MATLAB中绘制二维饼图的函数是(? ? ) (1.5分)
  14. linux设备模型详解
  15. 经典:基因组测序数据从头拼接或组装算法的原理
  16. Mac M1芯片 安装vmware 和ubuntu 以及换源全过程
  17. Python破解12306图片验证码
  18. 云计算方向研究热点、 云计算有怎样的发展前景?
  19. Android Dev Tools官网地址:http://www.androiddevtools.cn/
  20. java 24位 唯一_Java 24位数字签名

热门文章

  1. WCDMA中的TSTD和STTD
  2. linux运维之网络配置
  3. JMeter数据库请求配置及示例
  4. 《Unity虚拟现实开发实战》——第1章,第3.1节虚拟现实设备集成的软件
  5. MySQL 之 Metadata Locking 研究
  6. JS错误 theForm.submit();SCRIPT3: 找不到成员。
  7. 【转】spring MVC入门示例(hello world demo)
  8. sql server 连接
  9. MySQL-快速入门(14)MySQL性能优化
  10. Nhibernate3.3.3sp1基础搭建测试