前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysql新特性

mysql新特性

作者头像
后端技术探索
发布2018-08-09 16:02:13
9140
发布2018-08-09 16:02:13
举报
文章被收录于专栏:后端技术探索后端技术探索

性能提升

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支持的文章。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-12-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 nginx 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Mysql GA版本升级
  • 新特性
    • 1.账户安全
      • 2. sql mode
        • 3. alter table支持直接改索引名
          • 4. ngram 和 mecab 全文索引
            • 5.innodb强化
            相关产品与服务
            云数据库 MySQL
            腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档