mysql新特性

性能提升

oracle官方发布的基准测试声明:In benchmark tests using SysBench Read-only Point-Selects, at 1,024connections, MySQL 5.7 delivered 1,600,000 queries per second (QPS)-- 3x faster than MySQL 5.6.

意思是基准测试结果相比5.6,提升了3倍,达到了160万QPS

还有一个用户实际场景的测试:

新版本的 MySQL 在测试平台上可达到每秒 512000 只读 QPS,而 MySQL 5.6 最高只能到 250000 QPS。参见:http://dimitrik.free.fr/blog/archives/2013/09/mysql-performance-reaching-500k-qps-with-mysql-57.html

Mysql GA版本升级

回复数字19可查看mysql5.7升级文章

新特性

1.账户安全

*对于每个登录账号,5.7.1版本会根据密码是否为空和密码位数来判断使用mysql_native_password或者mysql_old_password。5.7.2版本开始,账号密码不能为空,而且不再支持mysql_old_password, old_passwords 配置不能再赋值为1兼容4.1前的旧密码格式用户登录。

对于旧格式密码,只能更新密码为新格式密码:

update mysql.user set authentication_string = password(‘yourps’)where Host=’localhost’ and User=’root’;

安装后root账户会有一个随机密码

*可设置账号密码有效时间

*锁定账号 account_locked

2. sql mode

(可通过语句查看:show variables like ‘sql-mode’;)

*ONLY_FULL_GROUP_BY(添加到默认值)

对于GROUP BY聚合操作,在SELECT中的列必须在GROUP BY中出现。

* ERROR_FOR_DIVISION_BY_ZERO, NO_ZERO_DATE,NO_ZERO_IN_DATE

5.7.4-5.7.7 废除这三个mode,把其功能包含在strict_mode中,但是会有旧版本升级的问题

5.7.8又恢复到5.7.4之前,增加到sql-mode默认值中。

以后的版本还会按照5.7.4的方法,只是5.7先作为这种改变的过渡版本。

3. alter table支持直接改索引名

RENAME INDEX old_idx_name TO new_idx_name

4. ngram 和 mecab 全文索引

支持对中文的支持。InnoDB全文索引,N-gram Parser:http://mysqlserverteam.com/innodb%E5%85%A8%E6%96%87%E7%B4%A2%E5%BC%95%EF%BC%9An-gram-parser/

5.innodb强化

1)inplace 算法

(online ddl 的一种)支持改变varchar长度,但是只能在0-255范围内增加长度。alter table t1 ALGORITHM=INPLACE, CHANGE COLUMN a a varchar(5);

online ddl解释:5.6版开始支持inplace算法,这种算法下alter table 不锁表、不copy表,而且允许dml操作,但是它的耗时比copy算法高。详见http://dev.mysql.com/doc/refman/5.6/en/innodb-create-index-overview.html。5.7之前所有change column操作仍然需要锁表。

2)新增空间数据类型

(地理位置或者几何学上的坐标), GEOMETRY。也开始支持sparcial类型的索引

CREATE TABLE test_57.geom (pt POINT);

SET @g = 'POINT(1 1)';

INSERT INTO test_57.geom VALUES (ST_GeomFromText(@g));

SELECT ST_AsText(pt) FROM test_57.geom;

3)多线程清理脏数据

(Multi-threaded page cleaner),innodb_page_cleaners设置并发线程

数,一个协调线程和其它工作线程

4)可动态设置缓存池大小,无需重启服务
5)崩溃恢复效率优化

新增一个新日志记录类型MLOG_FILE_NAME,标示上次恢复的表位置,原来每次恢复会需要扫描读取$datadir/*/*.ibd,然后去检查$datadir/*/*.isl来判断是否已经恢复该表

6)General tablespaces,(gt)

其实就是在table和物理文件之间的一个新概念,新建一个gt绑定到一个ibd文件,通常新建一个表也是默认在数据目录新建一个ibd文件,但是现在新建表可以指定到某个gt,而且多个表可以建在同一个gt上。总结一句话:它支持多个表公用一个idb数据文件, 可以节省内存。

支持表分区

7) 行存储格式默认值:dynamic替换compact

innodb引擎航存储格式包括compact、redundant、compressed、dynamic四种,前两者属于antelope(羚羊),后两者属于Barracuda(梭子鱼)是后来添加的。

指定表的row_format

:CREATE TABLE t1 (c1 INT) ROW_FORMAT=DYNAMIC;

查看默认row_format:show variables like'%row_format%';

查看表的row_format:SELECT * FROMINFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME LIKE 'test_57/geom'\G

8) 其它效率改进,

缩短online ddl 的altertable时间,改变临时表的存储方式.

7.json原生支持;回复数字20,可查看另一篇专门介绍json支持的文章。

原文发布于微信公众号 - nginx(nginx-study)

原文发表时间:2015-12-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏JetpropelledSnake

SQL学习笔记之MySQL查询的三层解析

1343
来自专栏Python爬虫实战

MySQL从零开始:03 基本入门语句

在上一小节中介绍了 MySQL 数据库的安装,接下来终于可以动手操作数据库了。本节内容介绍 MySQL 数据库的一些基本操作当做开胃菜。

841
来自专栏张戈的专栏

MySQL命令行工具:percona-toolkit安装使用初探

导读:percona-toolkit 源自 Maatkit 和 Aspersa 工具,这两个工具是管理 mysql 的最有名的工具,现在 Maatkit 工具已...

4047
来自专栏乐沙弥的世界

父游标、子游标及共享游标

        游标是数据库领域较为复杂的一个概念,因为游标包含了shared cursor和session cursor。两者有其不同的概念,也有不同的表现形...

733
来自专栏数据和云

深入原理:Consistent Reads 与 buffer cache

黄玮(Fuyuncat) 资深Oracle DBA,个人网www.HelloDBA.com,致力于数据库底层技术的研究,其作品获得广大同行的高度评价. 编辑手记...

3677
来自专栏码云1024

mysql数据库

4757
来自专栏浪子编程走四方

lnmp+coreseek实现站内全文检索

<font color='red'>在安装csft的过程中出现了三种错误情况,错误情况如下错误记录,可以参考修改即可</font>

730
来自专栏逸鹏说道

SQL Server 阻止了对组件“xp_cmdshell”的 过程“sys.xp_cmdshell”的访问。。。

今天在创建数据库的时候突然发现,xp_cmdshell的存储过程不能用了,网上一搜,发现大部分都是只关闭安全配置,然后就有了下文 ? 代码:具体的看注释,值得一...

3158
来自专栏我的博客

TP入门第八天

[小型留言板-增删查改] 1、先建立数据库lyb,然后建立表lyb_notes 建表代码如下: CREATE TABLE `lyb_notes` ( `id` ...

3568
来自专栏测试开发架构之路

SQL之经典SQL语句大全

经典SQL语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name  2、说明:删除数据库 drop databas...

4294

扫码关注云+社区

领取腾讯云代金券