Mysql5.7新特性
Mysql在被sun,继而被oracle收购之后,并没有被oracle这个巨人雪藏。反而近几年的发展速度极为之快,谁都知道。你oracle做不好mysql,开源的市场就会被别人代替,pg。MariaDB,percona server,假设说开源又不挣钱,我就仅仅能呵呵了。这里我选的版本号是最新的开发版。5.7.8.仅仅为了看一下最新近期的技术,当然。这个版本号是不可能被用到生产中去的。由于还不够成熟。还须要在实验室呆上非常久,假设说mysql5.6已经做的够好了,那么mysql5.7一定会让你眼前一亮。 Mysql在被sun,继而被oracle收购之后,并没有被oracle这个巨人雪藏。反而近几年的发展速度极为之快,谁都知道。你oracle做不好mysql,开源的市场就会被别人代替,pg,MariaDB。percona server假设说开源又不挣钱,我就仅仅能呵呵了。(本来这个文档做了个word。粘了非常多图片进去,csdn的图片载入不太友好,就不贴图片了。
)
在列出新特性之前。还是得先写出mysql5.7版本号在安装上与5.6的不同。
一般喜欢二进制包去安装。简单方便。非常easy理解。
真正的安装过程也是一波三折。
特性一:
安全性增强了,详细的增强。有以下几点:
1。5.6安装好之后root是没有password的。如今的会随机生成一个暂时password。或者在启动的时候–skip-grant-table ,更改password。
2,password能够设置自己主动失效的时间。
5.6 user表结构
5.7 user表结构
5.7添加了Password_lifetime 这个字段,来设置password自己主动失效的时间。
这个參数能够在配置文件设置,也能够动态改动。
[mysqld]
default_password_lifetime=180(180失效)
[mysqld]
default_password_lifetime=0(永不失效)
SET GLOBAL default_password_lifetime = 180;动态改动
ALTER USER ‘jeffrey’@’localhost’ PASSWORD EXPIRE INTERVAL 90 DAY;(设置某个用户90天失效)
ALTER USER ‘jeffrey’@’localhost’ PASSWORD EXPIRE NEVER;(用户password用不失效)
ALTER USER ‘jeffrey’@’localhost’ PASSWORD EXPIRE DEFAULT;(使此用户依照global设置)
3,用户账户锁定:
在创建用户时,能够设置用户为锁状态。比方:
,
使用例如以下方式解锁:
再次登录,ok
这里有一段凝视:Locking an account does not affect being able to connect using a proxy user that assumes the identity
of the locked account. It also does not affect the ability to execute stored programs or views that have
a DEFINER clause naming the locked account. That is, the ability to use a proxied account or stored
programs or views is not affected by locking the account.
4, To make it easier to support secure connections, MySQL servers compiled using OpenSSL
can automatically generate missing SSL and RSA certificate and key files at startup.
5,mysql安装使用(应该是初始化)mysqld –initialize 命令。
关于安装时的一些改变例如以下:
仅仅有一个root帐号。而且是有password的
初始化时不会再创建匿名用户。也就是之前的空用户
Test库已经被默认移除
二
默认是strict模式,也就是说,比方你之前在5.6插入一个超过长度的数据。会报warning。如今就要报错了。
三 在线更改索引名称; 在之前的5.6版本号是做不到的。
四
对于这个特性。不太了解。
以下比較关心的来了,innodb的增强功能。
1,能够使用alter table 功能更改varchar类型的字段长度。
添加方式为:
此处的ALGORITHM=INPLACE,仅仅能添加字段的长度,不能降低。添加的时候不能跨越256这个值,可是两边能够添加。
2。使用DML创建innodb暂时表的性能得到了提高,这个究竟提高到了哪。什么程度。我也不晓得。。
DDL performance for InnoDB temporary tables is improved through optimization of CREATE
TABLE, DROP TABLE, TRUNCATE TABLE, and ALTER TABLE statements.
3,这个是说暂时表不在存放在innnodb的共享表空间的意思吧。详细有什么优点呢?
,
4,innodb添加了一个空间数据类型DATA_GEOMETRY,然而我也不知道它有什么卵用
5,给暂时表加了一个独立的表空间。參数为innodb_temp_data_file_path
6,checksum在功能上的加强
可检查的文件大小。在5.7.2之前仅仅支持到2GB,如今能够大于2GB
7。5.7.2首次引进了一个新的日志,叫做non-redo undo log,它跟暂时表一样,会被存放放在lbtmp1里面,此文件在data文件夹下。
8。新添加变量 ,关于innodb_buffer_pool添加的相关參数例如以下:
首先添加了两个,innodb_buffer_pool_dump_pct,innodb_buffer_pool_chunk_size
其次还有默认值不一样了,mysql5.7開始默认在数据库服务启动。停止时,预热与dump数据。
innodb_buffer_pool_dump_pct 是设置dump的百分比,这部分数据是最热的数据
innodb_buffer_pool_chunk_size
其它的变量添加:
innodb_page_cleaners,定义了dirty pages clean线程的个数
9,这
这里好像是说,添加了在线的一下ddl操作,重点是避免了copytable的操作,提供表的可用性。
10,double write技术在一下支持原子写的磁盘上失效。 Fusion-io Non-Volatile Memory (NVM) from 5.7.4
11,
这个特性是说,在5.7.4之前。仅仅能copy非分区表到别的server。而之后,分区表也是支持的。详细曾经为什么不能够,如今为什么能够了还不清楚。
12
以下这个功能是不是非常酷,哈哈。
13,
触发器数量不在限制,曾经,作为一个after insert的触发器,对于一张表来说,仅仅能创建一个,如今不在限制。
14,
Ctrl+C不会退出mysqlclient
15。
复制库名重定向。我是这样叫的
16。
Change master to 的改变。
主要说了一些情况。mysql能够在不做stop slave 的操作情况下。就change master to。
很多其它情况请參考mysql5.7refman
17,
測试套件的默认engine变成了innodb
18。
Mysql開始支持多主复制。