1 MySQL8.0 pre-GA(pre General Avaliable:公共可用的先行版)于2018年3月19日发布,版本号为 8.0.12
上一次的RC版本号是 8.0.4,时间是2018年1月23日,看来快要到 GA 版正式发行的时候了,细心的你可能会发现,为什么 MySQL6 和 MySQL7 都没有出来,怎么就直接到 MySQL8 了呢。首先,为什么老外不喜欢 6,因为圣经《Bible》的启示录里面说了,666是罪恶的,见知乎回答(《圣经》启示录所预言的神秘数字 666 究竟是什么?https://www.zhihu.com/question/62059801),其次 MySQL7 用于企业产品线。主要的一些更新:
1.1 隐藏索引:可以通过设置表索引的 visible (可见性)来对比使用索引前后的性能对比,而不是之前简单粗暴的建立(删除)索引。详细请见:https://dev.mysql.com/doc/refman/8.0/en/invisible-indexes.html
1.2 窗口函数:其它一些数据库引擎中业已实现该特性。窗口函数对一系列查询行执行聚合运算,并可对每一行聚合周边的数据而生成结果。详细请见:
https://dev.mysql.com/doc/refman/8.0/en/window-functions-usage.html
1.3 公共表表达式(递归CTE):支持用户在不使用游标的情况下,执行引用了自身的子查询。详细请见:https://dev.mysql.com/doc/refman/8.0/en/with.html#common-table-expressions-recursive
1.4 另外,默认字符集由 latin1 更改为 utf8mb4,轻松支持 emoji 表情字符。
MySQL 8还大幅改进了对JSON的支持,添加了基于路径查询参数从JSON字段中抽取数据的JSON_EXTRACT()函数,以及用于将数据分别组合到JSON数组和对象中的JSON_ARRAYAGG()和JSON_OBJECTAGG()聚合函数。MySQL 8提供了灵活的角色支持,支持CREATE、DROP和GRANT角色,甚至可将一个角色赋予另一个角色,并可限制MySQL 8中可用的角色对每个会话或主机的可用性。用户也可以通过调用ROLES_GRAPHML()函数,实现角色的GraphML可视化。
参考链接:
1)What Is New in MySQL 8.0:https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html
2)Server and Status Variables and Options Added, Deprecated, or Removed in MySQL 8.0:https://dev.mysql.com/doc/refman/8.0/en/added-removed-variables-options.html
3)MySQL 8的关键新特性-InfoQ:
http://www.infoq.com/cn/news/2018/03/Best-New-Features-MySQL-8
2 NGINX 宣布支持 gRPC,可在下个版本 1.13.10 中使用
有了对 gRPC 的支持,NGINX 可以代理 gRPC TCP 连接,还可以终止、检查和跟踪 gRPC 的方法调用。
了解 service mesh 的架构师朋友可能要欢呼了,因为这将带来以下便利:
参考链接
1)What’s a service mesh? And why do I need one?https://buoyant.io/2017/04/25/whats-a-service-mesh-and-why-do-i-need-one/
2)Announcing gRPC Support in NGINX:https://www.nginx.com/blog/nginx-1-13-10-grpc/
今日编程技巧:当你觉得 GitHub clone 一个比较大的项目由于国内已知的原因导致效率过低时,你可以尝试使用 gitee 的项目同步功能,好处自不多说。