一、5.7
1、安全性
a.MySQL数据库初始化完成以后,会产生一个 root@localhost 用户,从MySQL 5.7开始,root用户的密码不再是空,而是随机产生一个密码,这也导致了用户安装5.7时发现的与5.6版本比较大的一个不同点。
b.MySQL 5.7版本提供了更为简单SSL安全访问配置,并且默认连接就采用SSL的加密方式。
c.可以为用户设置密码过期策略,一定时间以后,强制用户修改密码。
ALTER USER 'jeffrey'@'localhost' PASSWORD EXPIRE INTERVAL 90 DAY;
b.可以”锁”住用户,用以暂时禁用某个用户
ALTER USER 'jeffrey'@'localhost' ACCOUNT LOCK;
ALTER USER l 'jeffrey'@'localhost' ACCOUNT UNLOCK;
2、json和generated column
a.MySQL数据库从5.7.8版本开始,也提供了对JSON的支持。其使用方式如下:
CREATE TABLE t1 (jdoc JSON);
INSERT INTO t1 VALUES('{"key1": "value1", "key2": "value2"}');
b.generated column是MySQL 5.7引入的新特性,所谓generated column,就是数据库中这一列由其他列计算而得。
例如,知道直角三角形的两条直角边,要求直角三角形的面积。很明显,面积可以通过两条直角边计算而得,那么,这时候就可以在数据库中只存放直角边,面积使用generated column,如下所示:
CREATE TABLE triangle (sidea DOUBLE, sideb DOUBLE, area DOUBLE AS (sidea * sideb / 2));
insert into triangle(sidea, sideb) values(3, 4);
select * from triangle;
+-------+-------+------+
| sidea | sideb | area |
+-------+-------+------+
| 3 | 4 | 6 |
+-------+-------+------+
二、5.6
1、字段类型Timestamp,datetime的改变:时间类型字段,4个字节。可以为表设置多个Timestamp的特性,且datetime类型支持DEFAULT CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP。
2、InnoDB的增强
MySQL5.6中内置了对Innodb的全文索引支持。5.6.4之前版本的MySQL只有MyISAM支持全文搜索
全文搜索的基础是FULLTEXT索引,在MySQL5.6.4以后的版本中可以在Innodb,MyISAM数据表里的CHAR,VARCHAR和TEXT字段创建。
全文搜索在MyISAM表中,将忽略至少在一半数据行中出现的单词(Innodb没有此限制)。
全文搜索会忽略一些常见单词,如“a”,“the”等,这些单词被成为“停止词”。(可以修改停止词)
FULLTEXT索引可以为一个或多个数据列创建。如果搜索涉及多个数据列,必须为多个数据索引。FULLTEXT(title,address)和FULLTEXT(address,title)效果是一样的,搜索时使用顺序也是不重要的。