MySQL 开发团队于 12 日宣布 MySQL 8.0.0 开发里程碑版本(DMR)发布! 可能有人会惊奇 MySQL 为何从 5.x 一下跳跃到了 8.0。事实上,MySQL 5.x 系列已经延续了很多年,从被 Oracle 收购之前就是 5.1,而收购之后一直维持在 5.x,比如 5.5,5.6,5.7 等等。其实,如果按照原本的发布节奏,可以把 5.6.x 当成 6.x,5.7.x 当成 7.x。所以,只是换了版本命名方式而已。

  不过这次发布的 MySQL 8.0.0 开发版本还是有不少亮点的。

  MySQL 8.0.0 亮点

  • 事务性数据字典,完全脱离了 MyISAM 存储引擎

    真正将数据字典放到了 InnoDB 中的一些表中,从此不再需要 FRM、TRG、PAR 文件啦!Information Schema 现在以数据字典表的一个视图出现。原则上可以完全不需要 MyISAM 数据表类型了,所有的系统表都可以放到 InnoDB 之中。

  • SQL 角色

    角色是一系列权限的集合。可以创建角色,给某个用户授予和去除角色。这对于权限管理很方便。

  • utf8mb4 字符集将成为默认字符集,并支持 Unicode 9

    默认字符集将从 latin1 改为 utf8mb4,默认定序 collation 将从 latin1_swedish_ci 改为 utf8mb4_800_ci_ai。

  • 不可见索引

    可以将一些索引设置为不可见,这样 SQL 优化器就不会用到它,但是它会继续在后台保持更新。当有需要时,可以随时恢复可见。

  • 对二进制数据可以进行位操作

    不仅仅可以对 BIGINT 进行位操作,从 8.0 开始也支持对 [VAR]BINARY/[TINYMEDIUMLONG]BLOB 进行位操作了。

  • 改进了对 IPv6 和 UUID 的操作

    INET6_ATON () 和 INET6_NTOA () 现在可以进行位操作了,因为 INET6_ATON ()现在返回的是 VARBINARY (16) 数据类型(128 位)。改进了 UUID 操作,引入了三个新的函数 UUID_TO_BIN (), BIN_TO_UUID ()和 IS_UUID () 。MySQL 并没有特殊的 IPv6 和 UUID 数据类型,而是以 VARBINARY (16) 数据类型保存的。

  • 持续性的全局变量

    可以用 SET PERSIST 来设置持久性的全局变量,即便重启也会保持下来。

  • 性能数据库 Performance Schema 的改进

    比如对性能数据库增加了 100 多个索引,可以检索更快。

  • 重构 SQL 分析器

    持续不断的逐步改进 SQL 分析器。旧的分析器由于其语法复杂性和自顶向下的分析方式从而有严重的限制,导致难以维护和扩展。

  • 成本模型

    InnoDB 缓冲区现在可以估算主内存缓存区中的有多少表和索引,这可以让优化器选择访问方式时知道数据是否可以存储在内存中还是必须存储到磁盘上。

  • 直方图 Histograms

    通过使用直方图,用户或 DBA 可以对数据分布进行统计,这可以用于查询优化以寻找优化的查询方案。

  • 改进扫描性能

    改进了 InnoDB 范围查询的性能,可提升全表查询和范围查询 5-20% 的性能。

  • 重构 BLOB

    重构 BLOB 加速了片段读取/更新操作,可以加速 JSON 数据的操作。

  • 持久化自增值

    InnoDB 会持久化保持自增序列的最大值到 redo 日志中。这个改进还修复了一个非常老的 199 号 bug。

  • 临时表

    取消对压缩临时表的支持,并存储临时表的元数据到内存中。

  其它的更多重要改进和细节,请参考 MySQL 8.0.0 发布公告[1]和这里[2]。

  下载

  目前 8.0.0 还是开发版本,如果你希望体验和测试最新特性,可以从 dev.mysql.com[3] 下载各个平台的安装包。不过,MySQL 软件包是越来越大了,Linux 平台上的二进制打包后就将近有 1 GB。如果在产品环境中使用,在 8.0 没有进入稳定版本之前,请继续使用 5.7 系列,当前最新的版本是 5.7.15 GA 版本——这只有 600 M 多。

  最新的源代码放在 GitHub 上,感兴趣的朋友可以去看看,其中有不少是中国人的贡献。

  [1]: http://dev.mysql.com/doc/relnotes/mysql/8.0/en/

  [2]: http://mysqlserverteam.com/the-mysql-8-0-0-milestone-release-is-available/

  [3]: http://dev.mysql.com/downloads/mysql/

MY SQL8.0里程碑发布的更多相关文章

  1. springboot2.0(一):【重磅】Spring Boot 2.0权威发布

    就在昨天Spring Boot2.0.0.RELEASE正式发布,今天早上在发布Spring Boot2.0的时候还出现一个小插曲,将Spring Boot2.0同步到Maven仓库的时候出现了错误, ...

  2. (转)Spring Boot 2(一):【重磅】Spring Boot 2.0权威发布

    http://www.ityouknow.com/springboot/2018/03/01/spring-boot-2.0.html 就在今天Spring Boot2.0.0.RELEASE正式发布 ...

  3. Spring Boot 2(一):【重磅】Spring Boot 2.0权威发布

    就在今天Spring Boot2.0.0.RELEASE正式发布,今天早上在发布Spring Boot2.0的时候还出现一个小插曲,将Spring Boot2.0同步到Maven仓库的时候出现了错误, ...

  4. [译]ABP v1.0终于发布了!

    ABP v1.0终于发布了! 今天是个大日子!经过约3年的不断开发,第一个稳定的ABP版本,1.0,已经发布了.感谢为该项目做出贡献或试用过的每个人. 立即开始使用新的ABP框架:abp.io/get ...

  5. 重构、插件化、性能提升 20 倍,Apache DolphinScheduler 2.0 alpha 发布亮点太多!

    点击上方 蓝字关注我们 社区的小伙伴们,好消息!经过 100 多位社区贡献者近 10 个月的共同努力,我们很高兴地宣布 Apache DolphinScheduler 2.0 alpha 发布.这是 ...

  6. iis7.0上发布mvc4.0网站

    步骤如下: 1.右击需要发布的项目,在弹出的菜单中选择“发布...”选项 2.在“发布web”对话框中进行设置,配置文件名称默认为“配置文件1”可以修改为需要的名字,以便识别,也可以不改.发布方法选择 ...

  7. GJM : Taurus.MVC 2.0 开源发布:WebAPI开发教程 [转载]

    Taurus.MVC 2.0 开源发布:WebAPI开发教程 转载自http://www.cnblogs.com/cyq1162/p/6069020.html 因是新手  粘贴时有一个版权问题 本文原 ...

  8. MVC4.0网站发布和部署到IIS7.0上的方法

    最近在研究MVC4,使用vs2010,开发的站点在发布和部署到iis7上的过程中遇到了很多问题,现在将解决的过程记录下来,以便日后参考,整个过程主要以截图形式呈现 vs2010的安装和mvc4的安装不 ...

  9. Spring Mobile 1.1.0.RC1 和 1.0.2 发布

    Spring Mobile 1.1.0.RC1 发布了,该版本包含: 支持 Firefox OS 设备的检测 修复了使用 LiteDeviceDelegatingViewResolver 处理重定向和 ...

随机推荐

  1. Ejabberd作为推送服务的优化手段

    AVOS Cloud目前还在用Ejabberd做Android的消息推送服务.当时选择Ejabberd,是因为Ejabberd是一个发展很长时间的XMPP实现,并且基于Erlang,设想能在我们自主研 ...

  2. ABP的第一个程序和遇到的一些问题

    ABP在这里就不多介绍了.在这篇文章中主要介绍使用模板生成的ABP项目使用遇到的一些问题. 1.首先在http://www.aspnetboilerplate.com/ 官方网站上创建一个模板项目, ...

  3. IOS 中openGL使用教程2(openGL ES 入门篇 | 绘制一个多边形)

    在上一篇我们学习了如何搭建IOS下openGL的开发环境,接下来我们来学习如何绘制一个多边形. 在2.0之前,es的渲染采用的是固定管线,何为固定管线,就是一套固定的模板流程,局部坐标变换 -> ...

  4. 前端学习实践笔记--JavaScript深入【2】

    趁热继续再来学习一波,接下来主要介绍函数,object,数组,面向对象,new实例化. 在介绍“对象”之前,首先得梳妆打扮一番吧,那这梳妆打扮主要有两条路线,一条是淑女范(利用函数对象化),一条是邻家 ...

  5. xcode 8   去除无用打印信息

    更新Xcode8之后,控制台会默认打印一坨东西,屏蔽的方法如下:Xcode8里边 Edit Scheme-> Run -> Arguments, 在Environment Variable ...

  6. C#有关数组内存的释放及动态数组问题

    一.数组内存释放问题 数组内存的释放可以按照如下语句实现: string [] aa=new string[2]; aa[0]="A"; aa[1]="B"; ...

  7. 一个最小mybatis

    项目结构 package hello; import java.io.IOException; import java.io.InputStream; import org.apache.ibatis ...

  8. How to acquire an Android phone with locked bootloader?

    As we know that some devices come with locked bootloaders like Sony, HUAWEI, hTC...If you try to unl ...

  9. MySQL之权限管理

    MySQL之权限管理 一.MySQL权限简介 关于mysql的权限简单的理解就是mysql允许你做你全力以内的事情,不可以越界.比如只允许你执行select操作, 那么你就不能执行update操作.只 ...

  10. C语言运算符优先级和口诀(转)

    一共有十五个优先级: 1   ()  []  .  -> 2   !  ~   -(负号) ++  --   &(取变量地址)*   (type)(强制类型)    sizeof 3   ...