ITPub博客

首页 > 数据库 > MySQL > mysql 5.7增加新特性介绍

mysql 5.7增加新特性介绍

原创 MySQL 作者:cywen_0601 时间:2015-11-10 21:42:36 0 删除 编辑

    增加特性

1.1    安全性增加

用户表mysql.user的plugin字段不允许为空,默认值是mysql_native_password,而不是mysql_old_password,如果该字段为口,用户将被禁用,使用mysql_native_password代替mysql_old_password格式。增加密码过期机制,过期后需要修改密码。管理员可以对普通账号进行加锁。通过使用OpenSSL编译的软件包,在数据库启动中可以自动地生成SSL、RSA证书和key文件,客户端在建立连接时更安全可靠,MySQL拥有的mysql_ssl_rsa_setup也创建相关证书和key文件。MySQL默认使用mysqld –initialize进行初始化,初始化进程仅仅创建一个root账号:‘root’@‘localhost’,在error log文件中产生一个随机密码,并标记密码过期,需要尽快使用root账号登录进行密码修改。初始化进程不创建佚名账号,也不创建test数据库。

desc user;

|Field           | Type             | Null   | Key | Default            | Extra

|plugin          | char(64)          | NO    |     | mysql_native_password |

|password_expired| enum('N','Y')      | NO    |     | N             |       |

|password_last_changed | timestamp  | YES     |     | NULL         |       |

| password_lifetime    | smallint(5) unsigned| YES |    | NULL         |       |

| account_locked      | enum('N','Y')   | NO   |     | N            |       |

 

1.2 SQL mode改变

  STRICT_TRANS_TABLES和ONLY_FULL_GROUP_BY模式默认被启用,ONLY_FULL_GROUP_BY允许明确查询,阻止包括表达式的模糊查询,不保证group by语句中的唯一性。ERROR_FOR_DIVISION_BY_ZERO,NO_ZERO_DATE和NO_ZERO_IN_DATE模式默认也被启用,在后续版本逐渐被严格SQL模式替换。

|Variable_name|Value                                                                                                                                  

|sql_mode | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |

1.3 Online ALTER TABLE

   对于所有的存储引擎,ALTER TABLE可以支持在线索引重命名。

1.4 ngram 和 Mecab full-text parser plugins

   提供一个中午、日文、韩文语法分析器插件。

1.5 Innodb存储引擎增强

   VARCHAR size可以使用alter table 在线增加,0到255内长度占用一个字节作为一个区间,256以上长度占用两个字节作为一个区间,区间内可以随意更改,不能夸区间更改,不能在线缩减长度。对于DDL语句,增加了create table,drop table,truncate table和alter table性能。

Innodb临时表元数据不在存储在Innodb系统表空间,innodb_temp_table_info包含所有用户和system元数据,由innodb_temp_data_file_path制定路径,在系统启动时创建。数据表、压缩的临时表和相关对象的undo log(新类型)被存在临时表空间里。

Innodb支持大数据类型,在5.6及以前的版本,作为二进制BLOB数据,现在被定义为一个内部新数据类型:DATA_GEOMETRY。Innochecksum功能被增强。通过增加innodb_buffer_pool_dump_pct和innodb_io_capacity参数增强数据dump和load功能。支持innodb_page_cleaners选项可设置多个page cleaner线程提高脏页刷新效率,默认值是1,从5.6版本开始脱离Innodb主线程,引入1个清脏页的线程。支持使用DDL语句重建分区表:optimize table  alter table …force alter table … engine=innodb.

在linux上Fusion-io Non-VOLATILE Memory(NVM)文件系统提供了自动写功能,InnoDB doublewrite buffer不在适用。从MySQL5.7.4I Innodb 表分区可以使用传输表空间进行备份和不同实例之间的拷贝。从MySQL5.7.5 innodb_buffer_pool_size参数可以动态更改,内存页大小由innodb_buffer_pool_chunk_size指定,可以使用Innodb_buffer_pool_resize_status监控,支持大数据类型SPATIAL索引,在关闭数据库和恢复过程都可以使用多线程innodb_page_cleaners;full-text进行索引创建或重建(sorted index build),InnoDB可以进行大量数据load,大大增加了索引创建的效率,innodb_fill_factor限制了每页数据量,剩余给将来索引增加使用;引入了新的日志记录类型(mlog_file_name),简化了表空间的恢复,不用扫描大量日志进行恢复;可以设置innodb_undo_log_truncate删除不用的undo 表空间。从5.7.6 Inoodb 支持本地分区,不在依赖ha_partition handler,减少了内存的使用;使用create tablespace可以创建普通用户的表空间,可以创建在 MySQL目录外边,可以包含多个表。

Create tablesapce ‘tab_name’ add datafile ‘file.ibd’ file_block_size = n;

从5.7.9以后版本可以在客户端使用alter table .. upgrade partitioning命令升级由ha_partition handler 创建的分区;DYNAMIC代替COMPACT作为默认的Innodb 表的行格式,提供innodb_default_row_format参数可以修改。

System和status变量值也可以在 information_schema查看,增加sys schema帮助dba和开发人员进行性能调优和故障诊断。

支持对在线某个连接直接查看执行计划,比如EXPLAIN FOR CONNECTION 1024

一个表可以支持多个触发器。

在CREATE | ALTER TABLE时,可以在某张表已有列的基础上,对新增的列进行运算。

Mysql client 可以增加 –syslog选型把错误日志发送给syslog。

在MySQL 5.6以前,在客户端CTRL+C后会直接退出啊MySQL客户端,在5.7以后不会退出客户端而是终端当前的操作。

利用mysqlbinlog,在使用二进制文件恢复时可以改变数据库的名字。

--rewrite-db=’dboldname ->dbnewname’。

在5.7.3后续版本,在Innodb或MyISAM存储引擎上的分区表查询,可以利用索引下推功能。

在5.7.5 alter table … exchange partition支持 {with|without validation},with validation代表row-by-rwo确认。

在5.7.2后续版本多个线程能并发读二进制日志文件,当客户写二进制文件时dump进程也可以读。

在mysql5.7.4 引入了gb18030字符集,它支持中国本地GB18030字符集。

主复制线程可以更改,但是依赖从线程sql状态和从线程I/O状态。

INNODB作为默认的存储引擎

支持多源复制

一些新性能表可以监控组复制

| innodb_io_capacity                       | 200                    |

| innodb_io_capacity_max                   | 2000                   |

| innodb_buffer_pool_dump_now              | OFF                    |

| innodb_buffer_pool_dump_pct              | 25

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/16167282/viewspace-1827428/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2012-07-18

  • 博文量
    1
  • 访问量
    5330