MySQL被Sun收购,推出了一个过渡版本6.0,没过多久就下线了(有一次听说网上有人用6.0版本,我吓得下巴都掉了)。被Oracle收购后,终于迎来了一个像样的5.6版本,紧接着又是5.7和8.0版本。从这点来看,Sun的衰落也不无道理。P.S,上面说已经使用了6.0版本号,而7.x系列版本是NDBCluster专用的,所以新的版本号是从8.0开始的。刚被甲骨文收购的时候,大家都很恐慌。看来他们还组织了联名请愿。可惜,真应了“天下大势,汤浩瀚,顺者昌,逆者亡”这句话。创始人Monty又把MariaDB折腾了一遍,可惜不温不火。MySQL8.0发布后,MariaDB宣布不打算继续合并InnoDB引擎。这就更尴尬了。以后还能玩的开心吗?蒙蒂先生这两年时不时来中国露个脸,却显得这么丢脸酸酸的。话不多说,让我们来看看8.0的真香特点。一、为什么是8.08.0作为迄今为止表面上最强大的MySQL版本,被寄予厚望。虽然在很多人眼里,MySQL8.0不过是个“好爸爸”,但很多新特性在甲骨文看来都是“抄袭”的。但在我看来,甲骨文作为先行者,已经证明了这些技术的卓越。有什么理由不向他们学习呢?某个DB可以使用触发器变相实现分表功能?再说了,就算有“好爸爸”,也能做好吗?国民老公不是被限制消费了吗?上面),是目前最好的MySQL版本。以前因为不支持一些特性,需要在业务代码和逻辑上做一些妥协,甚至增加第三方方案(比如NOSQL)的使用。相信从8.0开始,以后这种情况会越来越少,MySQL也会越来越好。大部分与数据库相关的业务需求都可以在MySQL中完成。当然,我也相信它不会为了哗众取宠而堆砌一些不必要的功能,成为又一个“最好用”的数据库。2、MySQL8.0在哪里?在撰写本文时,最新版本的MySQL是8.0.19。以下是我个人认为最香的一些特点。2.1性能优化无疑与hashjoin有关。相信DBA都怕弱鸡开发坑。有了hashjoin,他们就不再那么害怕没有索引的多表join了。还有一个,反加入。hashjoin刚出来的时候,我做了一个简单的测试,发在朋友圈:快速添加新列。作为一个游戏DBA,想想早起做修改的辛苦,我眼里含着泪(╥╯^╰╥)直方图。没有索引,不想建索引,索引不准确?别怕,有直方图说实话。函数索引,表达式索引,开发者应该喜欢这两个功能。消除了全局缓冲池互斥锁。说起来Percona好像5.5版本就有这个功能,官方在这方面有点慢。反向索引。可以顺序、逆序、混序排列,任何姿势都能满足,em...无可见索引。删除一个索引,想删又不敢做,怎么破?无形的索引可以挽救生命。改成不可见后,观察一会,确认没有影响,再放心删除。引入WRITESET模式,大大提高了并行复制的效率,进一步降低了主从复制延迟。对于JSON数据类型,增加了多值索引,方便JSON查询。增强了HINT语法,更容易在执行查询时动态设置选项,针对不同的SQL采用不同的策略。有一个新的TempTable引擎,它比原来的tmptable要好得多。其他优化。2.2管理、复制、安全等功能增强GroupRelication正式上线。很好,我们正在稳步向高性能和高可用方向迈进,先实现读的可扩展性,再实现写的可扩展性。期待不久的将来分布式分片的实现。到那个时候,现在市场上吹嘘的那些NewSQL都傻了。这两年说起来有点委屈。ClonePlugin和ReplicaSet特性,结合MySQLShell,可以更方便地部署新的从属实例或InnoDBCluster节点。sqlrequireprimary_key选项设置强制每个表有一个主键。在主从环境下,相信有太多人吃过没有万能钥匙的亏。我当然没有,嘿嘿。自增ID在实例重启后依然存在,小的提升解决了业务逻辑上的大麻烦。额外的管理端口,管理员可以为自己开后门。在线修改配置参数后,SETPERSIST语法实现持久化,无需再次手动修改my.cnf。锁增强,增加SKIPLOCK、NOWAITLOCK锁模式和BACKUPLOCk。窗口函数,CTE。对同学的福音做统计分析。其他增强功能。更多功能,您可以访问以下信息查看。MySQL8.0新特性MySQL8.0相对于5.7的复制改进从MySQL5.5到MySQL8.0子查询演进之路3.看完还不想上车?细心的读者可能会在官方文档第一章“Chapter1”的“GeneralInformation”中找到这样一段话:SupportforsettinguservariablesinstatementsotherthanSETwasdeprecatedinMySQL8.0.13。这个功能是主题toremovalinMySQL9.0。嗯,你没看错,是的,下一个是9.0版本。按照经验,应该是2020年发布。再喊一声,MySQL8.0来了,速度高高铁,不上车可以直接用9.0。
