最近MySQL发布了被期待已久的8.0,GA版本为8.0.11,可以说是喜大普奔了,MySQL发行版本可以参照:MySQL版本区分 ,下面来介绍一下MySQL8.0版本的新特性:
1. 事务型数据字典
完全脱离了MyISAM,可以将数据字典放到InnoDB表中。取消了之前版本的元数据文件((frm, par, trn, trg, isl,db.opt)),例如在8.0中,"mysql"数据库的innodb表全部放至在datadir下的mysql.ibd中;将不再把表结构放在.frm文件中,而是存放在元数据表中:
由于MySQL采用统一Server层+不同的底层引擎插件的架构模式,在Server层为每个表创建了frm文件,以保存与表定义相关的元数据信息。然而某些引擎(例如InnoDB)本身也会存储元数据,这样不仅产生了元数据冗余,而且由于Server层和引擎层分别各自管理,在执行DDL之类的操作时,很难做到crash-safe,更别说让DDL具备事务性了。
在MySQL8.0之前,DDL操作在server crash的情况下,会遗留.frm,.ibd文件。MySQL8.0 能实现原⼦DDL(包括 DROP TABLE, DROP SCHEMA, CREATE TABLE, TRUNCATE TABLE, ALTER TABLE),在server crash的情况下,不会遗留.frm,.ibd临时文件,保证了DDL操作的原子性!
2. 角色管理
角色----系列权限的集合
3. 在sql中配置变量
例如在使用结果集大的sql中,使用
SELECT