设为首页 收藏本站
查看: 427|回复: 0

[经验分享] MySQL8 十大新特性

[复制链接]

尚未签到

发表于 2018-9-28 12:37:53 | 显示全部楼层 |阅读模式
  今天,让我们看一下MySQL8.0提升数据库管理员工作效率的十大改进。
  从一大堆特性你们找出十点并不太容易,以下是这十大特性:
  1.临时表的改进
  2.持续的全局变量
  3.取消默认MyISAM系统表
  4.UNDO空间回收
  5.UTF8性能改进
  6.取消Query Cache
  7.原子DDL
  8.更快、性能更好的Schema和Information Schema
  9.角色管理
  10.加密表空间中的REDO日志和UNDO日志都将被加密
  临时表的改进
  在MySQL5.7中,所有的临时表都被创建在一个叫“ibtmp1”的表空间中。另外,临时表的元数据也将存储在内存中(不再存储在frm文件中)。
  在MySQL8.0中,使用临时表存储引擎作为临时表(为优化JOIN、UNION等操作而创建的)存储的默认引擎,从而替换掉了原有的内存存储引擎。
  新的引擎使得VARCHAR和VARBINARY列的存储更为高效(所有存储空间得到完全分配)。
  持续的全局变量
  MySQL8.0现在可以设置变量并使其改变持续到服务器重新启动。
  使用此语法结合新的RESTART命令,可以非常容易的从shell中配置MySQL。这对云计算用户是一个十分友好的功能。
  取消默认MyISAM系统表
  由于采用了新的本地数据字典,现在我们不在需要MyISAM系统表了!
  这些表和数据字典表现在都在一个名为mysql.idb的InNoDB表空间文件中。
  这意味着如果你没有明确使用MyISAM表(为了你的数据,我们并不建议这样做),你可以创建一个没有任何MyISAM表的MySQL实例。
  UNDO空间回收
  在MySQL5.7中,我们已经可以截断UNDO空间了(设置innodb_undo_log_truncate,默认情况下禁用)。
  在MySQL8中,我们改进了磁盘格式来使得每个UNDO表有大量的UNDO段。
  此外,现在默认为两个单独的UNDO表空间(而非InnoDB系统表空间(最小为2,大小动态变化))中创建UNDO段。
  我们不推荐使用innodb_undo_tablespaces来设置该值,因为我们将提供SQL命令让数据库管理员与UNDO表空间进行交互。
  自动截断UNDO表空间默认启用。
  UTF8性能改进
  UTF8性能
  由于默认的字符集已经从latin1改为utf8mb4,因此现在UTF8的速度要快得多,在特定查询时速度提高了1800%! Emojis现在无处不在,MySQL当然是选择支持他啦!??
  取消Query Cache
  我在性能审计中建议的第一件事就是禁用Query Cache,因为它给设计带来了很多麻烦。
  MySQL QC造成的问题比它解决问题要多的多。因此我们决定在MySQL 8.0中取消它,因为大家就不应该使用它。
  如果您的工作负载需要Query Cache,那么您应该改用ProxySQL替代Query Cache。
  原子DDL
  由于采用了新的数据字典,MySQL 8.0现在支持原子数据定义语句(原子DDL)。
  这意味着当执行DDL时,数据字典更新,存储引擎操作以及二进制日志中的写入操作会合并到单个原子事务中,该事务要么完全执行,要么根本不执行。
  这提高了DDL的稳定性保证未完成的DDL不会留下任何不完整的数据。
  8.更快、性能更好的Schema和Information Schema
  我们对Schema进行了许多改进,如假索引和直方图。
  得益于假索引的存在,像SELECT * FROM sys.session这样的查询速度提高了30倍。
  查询尽可能避免进行表扫描,并且索引的使用可大大缩短执行时间。
  除此之外,Performance Schema还提供语句延迟的直方图。 新的直方图也使得优化器更为高效。
  新的数据字典也使得Information Schema得到了改进,现在不需要大量的.frm表结构定义文件。
  另外Information Schema现在支持扩展到超过1,000,000张表啦!
  角色管理
  MySQL 8.0中添加了SQL角色功能。 角色是指定的拥有特定权限的集合。 像用户帐户一样,角色可以拥有授予和撤消的权限。
  角色可以默认或采用session修改。 也可强制设置角色。
  加密表空间中的REDO日志和UNDO日志都将被加密
  在MySQL 5.7中,可以为存储在每个表中的表加密InnoDB表空间。 在MySQL 8.0中,我们通过为UNDO和REDO日志添加加密来完成此功能。
  除此以外,还有很多改进我没有列完。 还有很多其他不错的功能。 我想在下面再列出一些我认为重要的(尽管所有的改进都很重要??)
  1.持久自动增量
  2.InnoDB的自校正
  3.JSON性能优化
  3.隐形索引
  4.新的备份锁
  5.资源组功能
  6.额外的二进制日志元数据
  7.以及OpenSSL for Community Edition
  MySQL 8.0的十大新特性


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-603301-1-1.html 上篇帖子: mysql性能分析追踪2 下篇帖子: MySQL灾难恢复与备份(下篇)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表