BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

MySQL 5.7中的更多改进,包括计算列

| 作者 Jonathan Allen 关注 530 他的粉丝 ,译者 邵思华 关注 3 他的粉丝 发布于 2015年4月10日. 估计阅读时间: 3 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

让我们继续上一周的内容,讨论MySQL 5.7中的新特性,我们将把注意力集中于新的安全方面的特性。首先,新版本中取消了mysql_old_password这个认证插件。其实这个插件从版本4.x开始就已经被标注为过期了,但直到5.7.5版本中才被正式移除。从5.7.6开始,你必须显式地在mysql.user表中声明使用mysql_native_password方式进行认证。

新版本的MySQL开始支持密码过期策略了。如果系统管理员需要临时关闭某个用户或应用程序的访问权限,可以简单地将其帐号锁定即可。

和其它许多产品一样,MySQL的发展趋势是提供“默认的安全性”。这就意味着如果你使用“mysqld –initialize”方式安装MySQL,安装程序就会自动为管理员帐号创建一个随机的密码。该密码记录在错误日志中,并且在管理员首次登录时必须修改密码。使用这种安装选项不会生成任何匿名帐号,也不会创建测试数据库。

使用GRANT语句自动创建用户帐号的方式已经被标注为过期特性,同样,使用GRANT语言修改帐号属性,例如认证或SSL设置的方式也成为过期特性。

数据完整性

MySQL的事务型存储引擎现在默认开启严格模式。虽然仍然可以通过INSERT IGNORE或UPDATE IGNORE等语句覆盖严格模式,但对于多数常见的访问来说,这种默认配置应该能够大大降低无记载数据损坏的发生次数。

此外,在ALTER TABLE语句中不再支持IGNORE语法了。

ERROR_FOR_DIVISION_BY_ZERO、NO_ZERO_DATE和 NO_ZERO_IN_DATE等SQL模式不再作为单独的配置存在,它们的功能已经集成在严格模式中了。

性能

对于所有的存储引擎来说,都可以对索引进行重命名,而不会产生表复制操作。

包含GROUP BY子句的语句将不会隐式地根据该子句的内容对数据进行排序了,对于那些依赖于隐式排序特性的应用程序来说,这个变更可能会造成某些问题。

特性

MySQL现在支持计算列了,这一特性被称为“生成列”。语法本身有一点古怪的地方,因为它无法从表达式中推断出数据类型,不过它还是支持你所期待的各种特性,例如可以选择将计算值保存在表中,也可以选择在读取的时候进行计算。被保存的计算列能够添加索引。

HANDLER能够允许客户端对某张表或索引进行直接访问,现在这一特性可以在分区表中使用了。

查看英文原文:More Enhancements for MySQL 5.7 including Computed Columns

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT