MySQL5.6CREATETABLE源码分析

MySQL5.6 CREATE TABLE源码分析
MySQL5.6之前的版本DDL是非原子的。也就是说对于复合的DDL,比如DROP TABLE t1, t2;执行过程中如果遇到server crash,有可能出现表t1被DROP掉了,但是t2没有被DROP掉的情况。即便是一条DDL,比如CREATE TABLE t1(a int);也可能在server crash的情况下导致建表不完整,有可能在建表失败的情况下遗留.frm或者.ibd文件。

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:申请域名、虚拟空间、营销软件、网站建设、宁乡网站维护、网站推广。

从原理流程图中可以看出,create table先创建.frm文件,再调用ha_create_table创建ibd文件,如果创建成功则退出,否则将之前创建的frm文件删除。但是这里就有问题了,如果创建完frm文件后,server挂了,那么frm文件是创建成功了,但是ibd文件没有创建。这就是DDL非原子性导致的后果。


名称栏目:MySQL5.6CREATETABLE源码分析
转载来源:http://bzwzjz.com/article/gsohgs.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都网站制作 移动手机网站制作 成都网站建设 高端定制网站设计 成都网站制作 重庆企业网站建设 成都网站建设 盐亭网站设计 定制网站设计 公司网站建设 企业网站设计 网站设计制作 教育网站设计方案 网站制作 成都网站建设 网站建设 成都商城网站建设 网站制作公司 成都网站设计 高端网站设计 成都网站设计 企业网站建设公司