MySQL新特性
需积分: 0 147 浏览量
更新于2016-03-31
收藏 17KB DOCX 举报
2015年10月22日,MySQL发布5.7.9稳定版,虽然MySQL官方手册里已经有很多关于MySQL 5.7新特性的介绍,在这里,还是让我们一起看看在MySQL 5.7里有哪些值得我们关注的新特性吧。
### MySQL 5.7.9 新特性详解
随着2015年10月22日MySQL 5.7.9稳定版的发布,一系列重要的更新与改进也随之而来。本文将详细解读这些新特性,帮助读者更好地理解这些变化及其带来的实际意义。
#### 一、安全性增强
MySQL 5.7在安全性方面做出了重大改进,具体包括:
1. **用户表的密码管理:**在`mysql.user`表中,`plugin`字段不允许为空,其默认值为`mysql_native_password`,这表明MySQL不再支持旧式的密码格式`mysql_old_password`。
2. **密码过期机制:**引入了密码过期的功能,一旦密码过期,用户需要更改密码才能继续使用账户。这种机制能够有效提高系统的安全性。
3. **初始化时的密码管理:**使用`mysql_install_db`命令初始化时,会自动生成随机密码并将其记录在`/var/log/mysqld.log`文件中。此外,除了创建`root@localhost`账户之外,不会创建其他账户或`test`数据库。
4. **使用`mysqld --initialize`命令:**此命令用于数据库的初始化,若使用`--initial-insecure`参数,则会创建无密码的`root@localhost`账户;否则将创建有密码的账户,密码会直接写入日志文件中。
5. **用户锁定与解锁:**MySQL 5.7允许管理员对普通用户账户进行锁定和解锁操作,进一步增强了安全性和灵活性。
#### 二、InnoDB引擎的增强
InnoDB引擎在MySQL 5.7中的改进主要集中在以下几个方面:
1. **DDL操作优化:**在涉及InnoDB临时表时,DDL操作的性能得到了显著提升。
2. **临时表存储:**在5.7版本中,InnoDB临时表的信息和元数据都存储在新的表`INNODB_TEMP_TABLE_INFO`中。此外,这些临时表会存储在一个非压缩的独立表空间中,每次MySQL服务启动时都会自动创建该表空间。
3. **VARCHAR列长度调整:**支持在线(INPLACE)增加VARCHAR列的长度,但需要注意的是,长度从0到255之间为一个区间,超过255长度属于另一个区间,因此无法跨越255这个界限进行长度扩展。
4. **Page Cleaner线程:**通过设置`innodb_page_cleaners`选项来配置多个Page Cleaner线程,从而提高脏页刷新的效率。
5. **Undo Log管理:**可以通过设置`innodb_undo_log_truncate`等选项来自动删除不再使用的undo log,进一步优化存储空间使用。
6. **Read-Only模式性能优化:**InnoDB的Read-Only模式得到了增强,提高了其运行效率。
7. **普通表空间创建:**支持通过以下语法创建普通表空间:
```
CREATE TABLESPACE `tablespace_name`
ADD DATAFILE 'file_name.ibd'
[FILE_BLOCK_SIZE=n]
```
#### 三、SQL_MODE的变更
在MySQL 5.7中,对于SQL_MODE的默认设置进行了调整,主要包括:
1. **STRICT_TRANS_TABLES模式默认启用:**这一模式使得对表的数据插入操作更加严格。
2. **ONLY_FULL_GROUP_BY模式增强支持:**对这一模式的支持进行了扩展,并默认启用。这意味着只有完整的GROUP BY子句才会被接受。
3. **NO_ENGINE_SUBSTITUTION模式启用:**此模式默认启用,当指定的存储引擎不可用时,不会使用替代引擎。
#### 四、其他改进
1. **Online操作优化:**包括修改buffer pool大小、修改索引名称(非主键)、修改REPLICATIONFILTER等操作,无需中断服务即可完成。
2. **系统参数查看:**可以通过查询INFORMATION_SCHEMA中的表来查看MySQL的系统参数。
3. **支持单个表上的多个触发器:**允许在同一表上定义多个触发器,增加了灵活性。
4. **执行计划查看:**可以直接针对特定连接查看执行计划,例如使用`EXPLAIN FOR CONNECTION 1024`命令。
5. **日志记录到系统日志文件:**新增`log_syslog`选项,允许将MySQL的日志记录到系统日志文件中。
6. **CTRL+C行为改进:**在客户端输入CTRL+C后,不会立即退出MySQL客户端,而是终止当前正在执行的操作。
7. **表列计算支持:**在创建或修改表时,可以在已有列的基础上定义新的计算列,例如:
```
CREATE TABLE triangle (
sidea DOUBLE,
sideb DOUBLE,
sidec DOUBLE AS (SQRT(sidea * sidea + sideb * sideb))
);
INSERT INTO triangle (sidea, sideb) VALUES (1, 1), (3, 4), (6, 8);
```
MySQL 5.7.9稳定版在安全性、性能以及易用性方面都有显著提升,这些改进将有助于用户更好地管理和利用数据库资源。
qq_34483908
- 粉丝: 3
- 资源: 3
最新资源
- 新年倒计时网页基础教程
- Python编程初学者快速入门基础教程
- 新年倒计时编程基础教程
- 峰会报告自动化处理基础教程
- UE4UE5游戏开发基础教程:从零开始构建你的世界
- DataStructure-拓扑排序
- Front-end-learning-to-organize-notes-新年主题资源
- QPython Plus-Python资源
- baidulite-新年主题资源
- CnOCR-Python资源
- Golang_Puzzlers-新年主题资源
- Python开源扫雷游戏PyMine-Python资源
- Golang_Puzzlers-新年主题资源
- pyporter-Python资源
- Golang_Puzzlers-新年主题资源
- mulan-rework-Python资源