乐器网站模板,黑龙江建设网安全员考试报名,淘宝美工培训推荐,网站建设公司创业计划书MySQL 8.0 简介
MySQL 5.7 到 8.0#xff0c;Oracle 官方跳跃了 Major Version 版本号#xff0c;随之而来的就是在 MySQL 8.0 上做了许多重大更新#xff0c;在往企业级数据库的路上大步前行#xff0c;全新 Data Dictionary 设计#xff0c;支持 Atomic DDL#xff0c…MySQL 8.0 简介
MySQL 5.7 到 8.0Oracle 官方跳跃了 Major Version 版本号随之而来的就是在 MySQL 8.0 上做了许多重大更新在往企业级数据库的路上大步前行全新 Data Dictionary 设计支持 Atomic DDL全新的版本升级策略安全和账号管理加强InnoDB 功能增强等目前小版本已经 release 到 8.0.16新的功能仍然在持续推出。 RDS MySQL 8.0 产品是阿里云推出的 MySQL 系列云产品之一使用完全兼容 MySQL 8.0 的阿 里云 AliSQL 8.0 分支除了官方在 MySQL 8.0 推出的全新功能外AliSQL 沉淀了许多在 Alibaba 集团电商业务和云上几十万客户在使用 MySQL 过程中遇到的问题和需求以此来加固AliSQL, 提升 AliSQL 的性能和稳定性。 下面分别对 MySQL 8.0 和 AliSQL 8.0 相关的版本和功能做简短的介绍:
MySQL 8.0 版本更新
1. 数据字典
MySQL 8.0 摒弃了 Server Layer 定义的 FRM 文件和其它非事务表使用了一组 InnoDB 表来 保存数据字典支持事务特性。
2. Atomic DDL
在 Data Dictionary 支持事务特性的基础上8.0 增加了一个 DDL log 字典表用来协调在 DDL 过程中对数据字典文件系统 和 事务系统的修改做到原子性。
3. 升级
从 8.0.16 开始对于系统表的修改抛弃了 mysql_upgrade工具使用在系统重启的时候进 行升级。
4. 安全和账号管理
账号方面从 8.0 开始支持 role 对权限进行便捷管理以及新增多个系统权限分别对应新 增了 ROLE_EDGESGLOBAL_GRANTS 两个系统表;mysql schema 下的涉及权限和用户相关的表 更改成 InnoDB 引擎支持事务特性保证了账号管理语句的原子性。
认证方面caching_sha2_password 作为默认的认证 plugin以提升安全但要注意并不能和 8.0 之前的client进行兼容。 链路加密如果编译了OpenSSL 1.1.1 及以上MySQL 8.0 SSL 将支持到 TLSv1.3 版本。 系统账号在 8.0.16 新增 SYSTEM_USER 权限用于区分 系统账号还是普通账户可以对用户 进行分类管理。
5. Auto increment 持久化
在 InnoDB 引擎中新增了一个引擎私有的系统表 innodb_dynamic_metadata自增值就保存 在这个表里在对每张表进行修改 auto increment 值的时候都使用 redo log 进行保护在做 heckpoint 的时候持久化到这个系统表中保证下次重启后auto increment 能够从持久化中恢 复出来并且不受事务上下文回滚而影响。
6. 死锁检测
在高并发的情况下InnoDB 引擎中对于事务锁的死锁检测将是影响性能 scale 的重要因素 8.0 后提供了一个参数innodb_deadlock_detecthttps://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_deadlock_detect用来打开或者关闭引擎的死锁检测在业 务能够明确相关风险的情况下关闭死锁检测能大幅提升并发能力。
7. 临时表
在 InnoDB 引擎中用户创建的临时表将统一到 ibtmp 文件的临时表空间中; 对于系统运行过 程中产生内存临时表8.0后启用了新的 TempTable 引擎支持 blob 字段功能上优于 memory ngine。
8. Lock
SELECT ... FOR SHARE 和 SELECT ... FOR UPDATE 新增了 NOWAIT 和SKIP LOCKED 语法减少长时间和非必要的阻塞。
9. Instant add column
InnoDB 解决了长期困扰 DBA 的加字段要 copy 整张表数据的问题。现在可以快速的增加字段只修改数据字典而不用修改表中的记录本身。
10. 并行查询
InnoDB 目前支持在 clustered index 上进行并行查询提供innodb_parallel_read_threadshttps://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_parallel_read_threads参数控制session内的并行度。
11. Redo优化
Redo的写入一直是 InnoDB 高并发情况下的瓶颈8.0 开始:
用户线程可以并发的copy redo 日志到 log buffer中用户线程可以以更松散的方式把 dirty block 加入到脏块链表中独立的写线程完成 redo 的持久化
12. Json加强
在Json上8.0 增加了更多的功能性详见 MySQL 8.0 的 document。
13. Partial update on lob
InnoDB 继续优化 partial update on lob data对于仅仅修改很少字节的 lob 字段能够大幅 减少 undo data并提升效率。
14. 优化器和对象相关
1) 支持 invisible index方便用户和 DBA 调试 statement。 2)descending indexes提升降序扫描的效率。 3)Common table expressions支持 with 语法完成。 4)Window functions增加大量窗口函数 5)Regular expression重新设计了正则表达式的支持。
AliSQL 8.0 功能介绍
除了 MySQL 8.0 官方的特性以外AliSQL 8.0 在新功能性能提升稳定性保证可诊断性上 做了大量的改进:
1. 诊断
Top SQL: AliSQL 在 statement 级别上增加了新的性能诊断指标方便更快更准确的量化 SQL 的开销: 效果如下所示:
表和索引统计
新增表和索引级别的统计:
InnoDB IO 统计 2. Sequence
AliSQL 8.0 增加对 Sequence 对象的支持方便和高效的获取单调唯一值:
3. 大文件异步删除
InnoDB 大文件删除带来稳定性开销所以 AliSQL 8.0 提供了异步删数据文件的机制: 参数设置: 展示临时文件列表:
4. 隐含主键
AliSQL 针对用户没有建 PK 的表默认添加一个隐含主键以加速 slave 端的 SQL apply。 查看方法: 5. 事务超时
AliSQL 新增 kill_idle_transaction_timeout 参数以便对超时的事务连接进行 kill防止事务长时间未提交带来的系统风险。
6. Rotate slow log
AliSQL 8.0 针对 slow log 收集过程中对用户实例的影响以及truncate带来的阻塞可能提 供了rotate slow log table的功能影响更小更快捷并保证零数据丢失的收集方式。
7. 审计日志
AliSQL 8.0 重新设计的 audit log 模块提供了四种刷新策略分别是: 提供适合不同业务模式的 audit log 配置供用户选择。
8. 安全特性
AliSQL 针对 SSL 链路静态编译了OpenSSL 1.0 版本目前支持到 TLSv1.2 版本。
9. 优化
AliSQL 针对 semi sync 和 MDL 进行了性能优化提升了 semi sync 的性能大幅减少了 MDL 锁阻塞的可能性。
原文链接 本文为云栖社区原创内容未经允许不得转载。