MYSQL 8 Percona Server 暴徒上演
放松一天,挑拣了一部不是很热的电影,印度暴徒,看我大开眼界,三观一会儿端正,一会儿邪恶。 OK回归主题,MYSQL 8 和 暴徒有什么关系,电影里面的暴徒,其实是正义者,只不过在邪恶的东印度公司眼里面是“暴徒”。
PERCONA SERVER 8 ( MYSQL 8) 在 2018年12月23 日正式登场了,这标志着 MYSQL 不在是 5.7 的世界,很快 MYSQL 8 投入到正式的生产的日子不会太远了。(有一个声音,MYSQL 8 不是早就发布了,ORALCE发布的),好吧我就当没有听见这个声音。让我们看看这个“暴徒” 的脾气又多牛。
——————————————————————————————
1 当头一棒,用原来的命令你已经无法好好的建用户了。
上面的命令是百分之百的MYSQL 5.5. 5.6 5.7 可以运行的命令,建立用户和赋予权限以及密码,一气呵成!! 对现在就是错误的,MYSQLER们从新学吧!
正式的建立用户的方法:
我只能说,MYSQLER们,建立用户只能规矩了,想省事估计是不大可能了。
这还不是最大的NEWS, 最大的NEWS 是 MYSQL 有 ROLE 了,对MYSQL 从未有过ROLE 的概念,现在我们有了。
下面就是MYSQL 8 中定义的 ROLE ,当然也可以自己定义ROLE 然后赋予用户,再也不用多个用户赋予一样的权限,笨拙的一边一边的来了
具体怎么用ROLE 这里就不说了,要不就漏题了,下下期 MYSQL 的培训课程我准备吧这部分内容加进去。
Move on 下一个
—————————————————————————————
Visible VS INVISIBLE 索引
这个功能应该是其他数据库不具备的,这也是MYSQL 8 提供给大家的黑科技。 这个功能就是为了MYSQL 设计,某些索引你添加了,和不添加的区别在哪里,大表添加的索引如果乱了,多添加了,你想走这个索引,不在走哪个,怎么办。 统统看这个功能。
一个简单的表,我们查询最简单的数据
很明显,没有索引的查询要走全表扫描,filtered 10% ,看来我们可以建一个索引来拯救这个简单的查询。
创建索引后,的执行计划
如果这时有新的查询,
explain select * from test.test where name = 'lisa' and age=33;
explain select * from test.test where name = 'lisa' and age>33;
你又建立一个新的联合索引,你在不知道那个更优的情况下,在生产的系统上你可以,将原来的所以隐藏掉。
alter table test alter index idx_test_name INVISIBLE;
让旧的索引暂时失效。
可能有的DBA 说,我直接强制索引不就完了,NO NO NO 这样的观点太老了,一句话动态的环境用动态的方法解决,如果老师让程序员改来该去,怎么凸显你的重要性。 把握好这个新功能吧。
——————————————————————————————
MOVE ON
——————————————————————————————
第三个冲击,强度对于程序要来说要大于DBA,CTE , 窗口函数的支持,让你从原来MYSQL 统计数据的较劲脑汁,到现在简单向一阵风一样,如果对于程序员来说,这个功能绝对和炮火的冲击力一样。 看一下吧
当然还有窗口函数的支持,查询比原来更简单了
例如我们队在公司工作的人员的工作年限进行排名,如果以前没有窗口函数的支持,则这个功能要很麻烦
当然窗口函数使用的方式很多,这里就不演示了,从侧面这也说明MYSQL的查询优化器也有进步,否则也不可能会进行复杂的运算了。
——————————————————————————————
MOVE ON
其实MYSQL 8 还有很多新功能, 例如 SET PERSIST 这个功能简直就是 DBA 得福音,再也不用为 MY,CNF 参数 和 动态参数修改后,的统一性头痛了,这里就不介绍了,可以自己看一下 官方文档。还有 MGR 的功能加强,这些都必然是都是需要一段时间消化的。
大招来了,
当你看到这张图,下面的这张图,你如果3秒还没有反应我在说什么,如果你还是MYSQL 的DBA 那就好好反省吧
我们的 FRM 已经逝去了,默哀3分钟,这说明什么,讨厌的 DDL 的原子性问题,已经远去了,以后添加字段,索引,或许可以像其他的 数据库的DBA 那样的从容,(当然的验证,绝对不能大意,因为他还是MYSQL)
——————————————————————————————
结语: 有人问,你费那么大劲写这么多干嘛,有病吧? 或许是,如果我有病,就病在对我业务的热爱,对我专业的自我要求,或许是疯狂了点,我就喜欢这样的疯狂,并且或许还将继续疯下去。
另外安装 MYSQL 8 PERCONA ,并没有那么简单,经历了三个夜晚的折腾,各种依赖包的不齐,各种失败,最终用了特殊的方法装上了,目前这个版本,非常不建议在生产上应用(CENT OS7) ,这不是我说的,官方的文档有注明:
不过该学习的要开始,MYSQL 8 大面积的铺开的时间不会太远,并且这也是MYSQL 走入企业,传统企业,抢占 ORACLE 数据库 SQL SERVER 数据库,并且和 PG 正面交锋的一个版本,注定这是一个不能被忘记的版本。