MySQL5.6之前的版本DDL是非原子的。也就是说对于复合的DDL,比如DROP TABLE t1, t2;执行过程中如果遇到server crash,有可能出现表t1被DROP掉了,但是t2没有被DROP掉的情况。即便是一条DDL,比如CREATE TABLE t1(a int);也可能在server crash的情况下导致建表不完整,有可能在建表失败的情况下遗留.frm或者.ibd文件。
MySQL5.6 CREATE TABLE分析
最新推荐文章于 2024-07-31 12:30:45 发布
在MySQL5.6之前,DDL操作是非原子性的,可能导致部分操作完成而另一部分未完成,如DROP TABLE在崩溃后可能仅删除部分表。CREATE TABLE过程中,先创建.frm文件,再创建.ibd文件,若服务器在此期间崩溃,可能会留下不完整的表结构,即只有.frm文件。这揭示了DDL非原子性带来的问题。
摘要由CSDN通过智能技术生成