mysql online ddl 5.6_MySQL 5.6的Online DDL功能测试

online DDL的前身是 innodb fast index creation(5.1和5.5), 5.6里对这个功能做了扩展:很多alter table的操作绕开了 table copying,支持DML并发操作。

一、online ddl的支持测试:

1、主键的增删

主键添加:

支持online ddl,加主键过程中支持 并发的DML

主键删除:

不支持online ddl,删除主键过程需要copy table,导致DML被阻塞

2、索引的增删

1)普通索引

5.5使用新的逻辑(fast index creation),不再copy表,(参数old_alter_table),加快的索引的创建和删除,

但是会阻塞DML,可以select

5.6中创建和删除索引不再阻塞dml

2)unique索引

同上

3、字段的增删改

新增:

(alter table test add hehe2 int default 100)

5.5阻塞 DML,支持select

5.6支持并发DML

删除:

(alter table test drop hehe2)

5.5阻塞 DML,支持select

5.6支持并发DML

修改:

只改字段名:

(alter table test change hehe2 hehe20 int default '100')

5.5阻塞 DML,支持select

5.6支持online ddl,并发DML

修改字段类型:

(alter table test change hehe20 hehe2 varchar(100) default '100')

5.5阻塞 DML,支持select

5.6不再支持online ddl

二、新引入语法:

在5.6中,alter table增加了新的语法:

ALGORITHM [=] {DEFAULT|INPLACE|COPY}

LOCK [=] {DEFAULT|NONE|SHARED|EXCLUSIVE}

ALGORITHM:

INPLACE: 不copy table

COPY:    copy table

DEFAULT:

LOCK:

DEFAULT:    MySQL自己选择锁定资源最少的方式

NONE:      支持select和DML

SHARED:  支持select,不支持DML

EXCLUSIVE:不支持select,不支持DML

可以借用这个新增语法测试是否alter table语句支持online DDL:

新建一个表结构一样的表,存储少量的数据:

root:3306:popo>alter table test change hehe2 hehe20 int default '100' ,LOCK=NONE;

ERROR 1846 (0A000): LOCK=NONE is not supported. Reason: Cannot change column type INPLACE. Try LOCK=SHARED.

根据提示,这个字段类型修改的alter table不支持并发的DML操作

root:3306:popo>alter table test change hehe2 hehe20 int default 100,  ALGORITHM=inplace;

ERROR 1846 (0A000): ALGORITHM=INPLACE is not supported. Reason: Cannot change column type INPLACE. Try ALGORITHM=COPY.

同样 这个alter table 也需要copy table操作。

三、online ddl相关参数和原理:

innodb_online_alter_log_max_size

online ddl的原理是,mysql把在ddl时间内的所有的 插入,更新和删除操作记录到一个日志文件, 然后再把这些增量数据应用到相应的表上(等表上的事务完全释放后),这个临时日志文件的上限值由innodb_online_alter_log_max_size指定,每次扩展innodb_sort_buffer_size的大小 该参数如果太小有可能导致DDL失败,这期间所有的未提交的并发DML操作都会回滚;但是如果太大会可能会导致后DDL操作最后锁定表的时间更长(锁定表,应用日志到表上)。 每一个变化的索引或者表都会分配一个。

0b1331709591d260c1c78e86d0c51c18.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/465402.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Stupid cat Doge (分形图)

【题目描述】 【题目链接】 http://noi.openjudge.cn/ch0204/8463/ 【算法】 为求等级N下的点的坐标可由几何关系找到其与等级N-1下对应点的关系&#xff0c;然后递归直至所有点的祖先&#xff08;等级0&#xff09;即可计算出坐标。 【代码】 1 #include <bits/stdc.h>2…

电赛时,如何快速搭建电路?

大家好&#xff0c;我是张巧龙&#xff0c;电赛只有四天三夜&#xff0c;电路方案可能需要多次验证&#xff0c;有的同学选择直接洞洞板焊接&#xff0c;自行跳线。有些同学可能会选择雕刻机雕刻。我带的学生一般会使用传统工艺-腐蚀法&#xff0c;这种方法的优点&#xff0c;成…

Javaweb经典三层架构的演变

1.Javaweb经历了三个时期 ①JSP Model1第一代 JSP Model1是JavaWeb早期的模型&#xff0c;它适合小型Web项目&#xff0c;开发成本低&#xff01;Model1第一代时期&#xff0c;服务器端只有JSP页面&#xff0c;所有的操作都在JSP页面中&#xff0c;连访问数据库的API也在JSP页面…

我决定去读研了

读书这个事情&#xff0c;我一直都是比较推荐大家去做的&#xff0c;今天有一位同学找到我&#xff0c;问我现在哪个行业比较赚钱&#xff0c;自己马上要毕业了&#xff0c;想马上大显身手一下。然后我问他&#xff0c;你有没有赚钱的压力&#xff0c;还有自己目前的学习成绩怎…

win2008 php mysql zend phpmyadmin_Windows2008 最新版Apache2.PHP5.MySQL6.PHPMyadmin.ZendOptimizer安装图解...

首先到PHPCHINA的网站www.phpchina.com下载最新的正式版本Apache 2.2.8地址&#xff1a;http://apache.mirror.phpchina.com/httpd/httpd-2.2.8-win32-src.zipPHP-5.2.5地址&#xff1a;http://cn.php.net/get/php-5.2.5-Win32.zip/from/this/mirrorMySQL-6.0.3-alpha-win32地址…

WPF 开源项目 【watcher】 守望者,一款监控,统计,分析你每天在自己电脑上究竟干了什么的软件...

时隔多年&#xff08;两年&#xff09;&#xff0c;天天沉迷写PHP的我在连续加薪了逐渐发现自己不怎么写代码了。 甚至有一天我发现我连IDE 都没有打开&#xff0c;实在是太堕落了 为了及时悬崖勒马&#xff0c;回头是岸。为了鼓励自己专心写代码&#xff0c;我决定写一款监控自…

Java iText PDF:用 iText 包生成简单的 pdf 文件

有点兴趣想要看看 Java 怎么生成 PDF 文件&#xff0c;搜索了一下&#xff0c;据说 iText 包比较好&#xff0c;到 这里下载 iText.jar 包&#xff0c;顺便把源代码、文档都一起下载了吧。但是&#xff0c;仅仅有这么一些材料想要写代码生成 pdf 文件还是比较困难的&#xff0c…

java互换_两个变量交换的四种方法(Java)

对于两种变量的交换,我发现四种方法,下面我用Java来演示一下。 1.利用第三个变量交换数值,简单的方法。 (代码演示一下) 1 class TestEV 2 //创建一个类 3 {4 public static void main(String[]args) 5 {6 int x =5,y=10; //定义两个变量 7 8 int temp = x;    //定义第…

搞技术的,越老越吃香?越老越值钱?

在我的整个职业生涯中&#xff0c;我目睹了很多才华横溢的工程师经过一段不太愉快的短期任职后离开了公司。曾经我也有这样的经历&#xff1a;在一家公司任职不到两年&#xff0c;就跳槽到了另一家&#xff0c;担任工程副总裁。撇开我的例子不谈&#xff0c;我认为出现这种现象…

ubuntu 修改host,以便在本地调试

sudo gedit /etc/hosts这样已经可以即可生效了&#xff0c;另外再改一下nginx.confserver_name localhost www.15-1688.com;

对存储还搞不清楚,先看看这篇文章-从51单片机上去理解存储器

存储器是许多存储单元的集合&#xff0c;存储器单元实际上是时序逻辑电路&#xff08;锁存器&#xff09;的一种&#xff0c;按单元号顺序排列。每个单元由若干二进制位构成&#xff0c;以表示存储单元中存放的数值&#xff0c;这种结构和数组的结构非常相似。按存储器的使用类…

继续泼冷水 Ubuntu决定放弃支持安腾

在今年早些时候微软宣布下一代windows server操作系统不再支持英特尔安腾架构&#xff0c;给本就前途堪忧的安腾泼了一盆冷水。如今Ubuntu&#xff08;重要的一款以桌面应用为主的Linux操作系统&#xff09;也决定不再支持英特尔安腾架构。而另一方面&#xff0c;安腾在硬件厂商…

给不起钱的大公司,算不上大公司

这是昨天给一位同学聊职业规划中说的一句话。这位同学在每次做选择前都会跟我聊下&#xff0c;感觉职业规划咨询跟卖菜差不多&#xff0c;那些觉得我的建议不错的同学&#xff0c;总是会在一年两年后继续找我&#xff0c;挺好的&#xff0c;喜欢跟大家一起沟通吹水并一起成长的…

粉丝回馈,8000元大礼包免费相送

9月开学季&#xff0c;福利送不停&#xff0c;果哥又给大家送福利了&#xff0c;价值8000元豪礼相送&#xff01;一、 前言非常感谢大家对我公众号的支持&#xff0c;暑假也结束了。这次邀请了3个不错的公众号朋友&#xff0c;同时也是电子嵌入式领域的优质公众号&#xff0c;一…

[Drupal] How to get the real path of a node, no matter it is a path or a url alias

Just test the code as below: 代码 $urisubstr(request_uri(),1,strlen(request_uri()));$uri_arrayarray();if(!($pathdrupal_lookup_path(source,$uri))) {$uri_arrayexplode(/,$uri); }else{$uri_arrayexplode(/,$path); }var_dump($uri_array);Have fun!

图文讲解5G调制,特别通俗易懂!

大家好&#xff0c;今天我们来聊聊调制。说到调制&#xff0c;我想很多同学马上会联想到这些关键词&#xff1a;BPSK、QPSK、调幅、调相、QAM、星座图……众所周知&#xff0c;调制和解调是通信基本业务流程中的重要组成部分。没有它们&#xff0c;我们的移动通信根本无法实现。…

2018 Multi-University Training Contest 3

好像克拉丽丝小姐姐题解写的超详细我都没啥好说的了 Problem A. Ascending Rating 仔细一看m是固定的单调DQ就好了 1 #include <bits/stdc.h>2 using namespace std;3 typedef long long LL;4 const int maxn 1e7 10;5 int st, ed, deq[maxn];6 int a[maxn];7 8 inline…

内核抢占,让世界变得更美好 | Linux 内核

大家好&#xff0c;我是老吴。今天要分享的是抢占相关的基础知识。本文以内核抢占为引子&#xff0c;概述一下 Linux 抢占的图景。我尽量避开细节问题和源码分析。什么是内核抢占&#xff1f;别急&#xff0c;咱们慢慢来。先理解抢占 (preemption) 这个概念&#xff1a;involun…

ESXI3.5 单网卡实现iSCSi连接

其实这个也没啥好说的&#xff0c;只是很多文章都是建议大家在做ESXI方案时&#xff0c;要配置专用的设备卡/网络卡来接 SAN设备&#xff0c;由于环境限制&#xff0c;我这里是用Openfiler2.3来当SAN用&#xff01; 步骤: 1.直接启用 iSCSI Software Adapter 连接 2.启动 i…

体制内工作了十几年,跳出来学嵌入式合适吗?

这说的不是我&#xff0c;是我原公司的一个朋友&#xff0c;他原来的同事。我这个朋友原来毕业是在体制内工作&#xff0c;但学习的是电子专业&#xff0c;后因为体制内不适应&#xff0c;或者说是体制内太轻松了&#xff0c;就出来折腾嵌入式。这一折腾就是快十来年&#xff0…