前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL 最新的release notes

MySQL 最新的release notes

作者头像
用户1278550
发布2019-05-07 15:06:07
8930
发布2019-05-07 15:06:07
举报
文章被收录于专栏:idbaidba

从MySQL发布正式版本8.0.11以来,MySQL 又相继发布8.0.12-8.0.15 四个版本.本文着重介绍8.0.13和8.0.14 版本中值得关注的改进点。

为什么不关注8.0.15,因为8.0.15的release notes 基本没啥信息。翻译的可能不准确,欢迎大家拍砖。

8.0.13

部分改进和特性
  1. 提高SELECT COUNT(*) FROM tbl_name 语句的查询速度,注意只针对没有where条件的sql或者没有其他group by的查询语句。例如 select count(*) from t where a=x 则不能优化。
  2. 支持Skip Scan access 有点像跳跃索引扫描,看官方的例子 CREATE TABLE t1 (f1 INT NOT NULL, f2 INT NOT NULL, PRIMARY KEY(f1, f2)); INSERT INTO t1 VALUES (1,1), (1,2), (1,3), (1,4), (1,5), (2,1), (2,2), (2,3), (2,4), (2,5); INSERT INTO t1 SELECT f1, f2 + 5 FROM t1; INSERT INTO t1 SELECT f1, f2 + 10 FROM t1; INSERT INTO t1 SELECT f1, f2 + 20 FROM t1; INSERT INTO t1 SELECT f1, f2 + 40 FROM t1; ANALYZE TABLE t1; EXPLAIN SELECT f1, f2 FROM t1 WHERE f2 > 40;

新的算法的执行伪算法如下:

优化器能使用Skip Scan access必须满足:

1 select的字段必须都在组合索引中,也即满足覆盖索引的条件。

2 索引最左前缀不在where条件中。(a,b,c,d) a 不在where 条件中,但是b c必须在。

3 查询只能涉及到一个单表。

4 查询sql不能使用group by 或者distinct

5 where 条件中必须有非最左前缀必须有范围查询,比如索引是(a,b,c) where b>20 .

个人感觉这个特性颠覆了DBA经常告诉开发的最左前缀原则,是对不合适索引设计的补充。尽管MySQL优化器越来越强大,但是开发创建索引时还是要尽可能的满足最左前缀原则。也可以参考 干货 | 解读MySQL 8.0新特性:Skip Scan Range

3. 还有其他数据文件加密和MRG 相关改进,有兴趣的可以自己去看看。

以后要废弃且在未来的版本中移除的参数和特性
  1. 以后不在支持存放分区表在共享表空间。
  2. CREATE TEMPORARY TABLE 的语法以后废弃如下属性: TABLESPACE = innodb_file_per_table TABLESPACE = innodb_temporary
  3. 废弃utf8mb3字符集,请使用utf8mb4代替。话说应该很少人用utf8mb3字符集吧。
  4. 移除 metadata_locks_cache_size 和metadata_locks_hash_instances
  5. 废弃 sql_mode:PAD_CHAR_TO_FULL_LENGTH 并且在未来的版本中移除。

8.0.14 部分改进和特性

  1. 增强系统可运维性,增加管理员连接地址,在MySQL系统连接满的情况下,管理员可以通过admin_address登录数据库进行维护操作。其实这个有
  2. 支持账号设置双密码,修改底层密码时系统可以更平滑,提供系统安全性和稳定性。例如: ALTER USER 'appuser1'@'host1.example.com' IDENTIFIED BY 'password_b' RETAIN CURRENT PASSWORD;
  3. 之前的8.0版本是系统默认创建2个undo表空间,新版本支持创建额外的undo表空间并且可以在运行时删除额外的undo表空间。 create undo tablespace tablespace_name add datefile 'file_name.ibu'; drop undo tablespace tablespace_name; 还可以通过alter命令动态的设置undo 表空间的ACTIVE|INACTIVE状态。
  4. 支持并发聚族索引读取,提高 check table 的速度。其并发数量由innodb_parallel_read_threads 控制,默认是4,需要注意的是该功能不支持辅助索引。
  5. 当innodb_dedicated_server为开启时,log file的数量和大小可以根据系统的buffer pool size 自动调整。之前的版本是根据os系统的内存大小设置的,而且log file的数量不是自动调整的。注意: 如果不是独享物理机,官方文档并不推荐打开该参数。具体可以参考官方文档。
  6. alter table命令支持in-place的方式修改字符集了,不过需要满足如下三个条件: a. 字符集类型是char,varchar,text或者enum b. 字符集类型从utf8mb3 修改为utf8mb4,或者由任意字符集修改为binary c. 被修改的字段非索引字段。
  7. MRG新增控制集群数据一致性读写的参数 group_replication_consistency ,防止集群容灾切换时,新的主库没有应用完backlog,业务请求访问新的主库可能会读取老的数据。该参数有四个值:EVENTUAL,BEFORE_ON_PRIMARY_FAILOVER,BEFORE,AFTER,BEFORE_AND_AFTER。 默认为EVENTUAL,可以不等日志应用完成即可读写。如果设置为 BEFORE_ON_PRIMARY_FAILOVER 则新的读写请求会被阻塞住,直到日志被应用完成。详细信息参考 社区投稿 | MySQL MGR"一致性读写"特性解读

参考文档

https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-13.html

https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-14.html

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 yangyidba 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 8.0.13
    • 部分改进和特性
      • 以后要废弃且在未来的版本中移除的参数和特性
      • 8.0.14 部分改进和特性
      • 参考文档
      相关产品与服务
      云数据库 SQL Server
      腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档