MySQL 8作为目前正在开发的最新版本,目前已经发布了DMR版本,这篇文章主要介绍 MySQL 8 的新特性之一:InnoDB数据字典。 MySQL的核心架构采用统一Server层+不同的底层引擎插件的架构模式,在Server层为每个表创建了frm文件,以保存与表定义相关的元数据信息。但有些引擎(例如InnoDB)本身也会存储元数据,这样不仅产生了元数据冗余,并且Server层和引擎层分别各自管理,在DDL之类的操作时,无法做到crash-safe,更别说让DDL具备事务性了。 MySQL 8 为了解决这些问题(尤其是DDL无法做到atomic),尝试取消了FRM文件及其他server层的元数据文件(frm, par, trn, trg, isl,db.opt),所有的元数据都用InnoDB引擎进行存储, 另外一些诸如权限表之类的系统表也改用InnoDB引擎。 下面就针对MySQL 8 的这个特性做一些基本的测试,一探究竟。 先创建个新库,并在库下创建两个表来开启我们的测试mysql> CREATE DATABASE mysql8test;
Query OK,1row affected (0.00sec)
mysql> USE mysql8test
Database changed
mysql> CREATE TABLE t1 (a int primary key);
Quer
...
继续阅读
(6)