连跳7个版本之后,MySQL 8.0.12有什么新特征?
副问题[/!--empirenews.page--]
9月15日技能沙龙 | 怎样将智能化和运维事变相团结,实现智能运维!
弁言时隔三个月,MySQL 8.0.12 有什么新内容? 本年4月份,MySQL溘然直接从8.0.5跳过多个版本号到8.0.11,直接公布8.0.11 GA,汇报各人说,这个版本已经可以到线上用了。 到本年7月尾,MySQL 8.0.12版本宣布,我从官方的release note内里,选取出来我以为的重点内容,在这里睁开聊一下。 假若有想要看全文的人,可以直接去看官方的宣布内容:https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-12.html filesort 算法的缓存配置优化众所周知,MySQL 在处理赏罚 Order by 的时辰,假如没有索引可以用,会回收一个名为 file sort 的算法排序,但和这个算法有一个关联的参数, sort_buffer_size,预计许多人都知道这个参数,这个参数在之前有个算是较量蛋疼的题目:假如 sql 会话中,执行 sql 必要举办file sort,那么 mysql 就会给当前回话直接分派 sort_buffer_size巨细的内存出来。 这个乍一看没啥题目,但必要留意的是,在 MySQL 中,没步伐像 Oracle 那样同一打点 PGA(用户线程/历程耗损的总内存巨细),碰着那种刚好会话数目较量多,filesort 较量多(哪怕SQL语句单拎出来机能没啥题目),sql 查询量较量大的环境,就很是轻易让 MySQL 的内存行使量超标被操纵体系 OOM 了。 可能假如你有风俗配置 swap 空间,那么巨慢的 swap 会拖死整个呆板,只能洒泪重启,相同这种事情,在互联网营业中,并不鲜见,也间接导致了许多人很是厌烦 file sort,哪怕多加几条索引,也要全包围式地处理赏罚掉全部 file sort。 但此刻,这个内存分派机制总算改变了,从 8.0.12 开始,这个内存分派酿成了按需分派。也就是说,对付排序量很是小的 sql(好比某小我私人的微博列表)这种,触发了file sort,就再也不会直接分派 sort_buffer_size(默认256KB)的巨细了,而是分派很小的内存出来用,某种水平上可以停止了许多突发性流量导致的事情。 rewrite插件支持DML语句MySQL 从 5.7 开始,新增了一个 plugin 的接口,rewrite,用于在处事器接管 SQL 语句后,执行前修改 SQL 语句,最初只是支持 select,从 8.0.12 开始,支持了 insert,update,replace 这些 DML 语句。 SELECT ORDER BY与GROUP BY语法改观8.0.12,8.0.13(未宣布版本,但文档中已经更新内容)开始,MySQL 的 Order by 支持 GROUPING函数 以及 WITH ROLLUP语法,然后,在8.0.13开始,废弃掉group gy 中的desc,asc要害字,对付 WITH ROLLUP 获得的功效荟萃的排序,必要行使order by 语法。 对付搞数据聚合较量多的人来说,WITH ROLLUP 与 GROUPING 应该不算生疏,这个语法改观,相等于是把 order by 的语法补全完备,更兼容 SQL 尺度语法了,假如迁徙措施到 8.0,必要留意这种不兼容的改观。 顺带一提,官方文档此处写的是小写的 grouping,但现实上指的是 GROUPING函数 而非平凡聚合函数(平凡聚合函数一向是支持的)。参考代码: https://github.com/mysql/mysql-server/commit/d401baf535a69d6f2a945229acecbfd5863c0a48 测试表数据 With rollup语法: 8.0.12 之前(测试版本为 5.7.22),假如想要排序,会呈现语法错误: 必要写为(排序要害字写到 group by 内里): 8.0.12 开始可以执行并排序(为了明显结果增进了desc 要害字): Group Replication继承优化新增了参数 group_replication_exit_state_action 来节制,假如一个实例发明本身属于被丢弃(收集分区产生后的少数派)的实例的环境下,这个值默以为ABORT_SERVER,也就是说,少数派会本身封锁,这个值也可以配置为 READ_ONLY,这个配置下,会以只读(配置super read only)的情势插手集群,并配置状态为 ERROR。 InnoDB Alter Table优化这个可以说是一个源远流长的故事,简朴来说,就是腾讯游戏部分的 DBA 们,为了数据库快速加列(游戏运营天赋的快速改观题目),写了补丁出来用(很是从前的时辰),其后这个补丁逐渐被各个第三方刊行版接管,此刻终于进入官方宣布版,让更多的人受益。 MySQL 的 DDL一向长短常着名的题目,社区与官方都在这个题目上投入了很大的精神,从最早 percona 的 toolkit 内里带的 pt-osc(这个基于触发器实现的在线改表,因为 MySQL 从前单表只支持一个触发器,为了停止无法行使 pt-osc,有了从前一向传播到此刻的 MySQL重大守则之一:不许行使触发器),到 github 宣布的 gh-ost(基于 row 名目 binlog),官方也一向在搞 alter 相干的在线修改优化(好比加索引等操纵,参考链接 https://dev.mysql.com/doc/refman/8.0/en/innodb-create-index-overview.html)。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |