INFORMATION_SCHEMA中新增InnoDB相关系统表 , 可查询InnoDB buffer pool、表元数据、索引、外键、底层性能相关的数据等 。
新的InnoDB可以使用LRU算法释放打开的表所占用的内存以缓解有大量表的服务器上的内存负载 。(可通过 table_definition_cache 调整打开的InnoDB表可使用的内存量)
内部性能优化 , 如通过拆分kernel mutex减少争用、将flush操作由主线程移至独立线程、使用多个刷新线程、较少大内存系统上的buffer pool的争用 。
更快的死锁检测算法 , InnoDB相关的死锁信息会全部写入错误日志 。
可在服务器重启后立即重载页至InnoDB buffer pool以避免重启后过长的“热身”时间 , 尤其是InnoDB buffer pool较大的实例 。可在服务器关闭时dump出buffer pool中的数据下次重启后载入、也可以在运行过程中导入导出 。
5.6.16后innochecksum可支持2G以上的文件
可通过innodb_status_output和innodb_status_output_locks,分别动态开闭InnoDB Monitor和InnoDB Lock Monitor(分别会在error log中打印出InnoDB相关信息 , 后一个参数的开启要以前一个参数的开启为前提 , 以后后一个参数的结果是前一个结果的子集) 。
5.6.17后可以使用online DDL(ALGORITHM=INPLACE)通过如下操作OPTIMIZE TABLE、ALTER TABLE FORCE、ALTER TABLE ENGINE=INNODB 来重建表 , 以减少重建时间并允许并发的DML 。
Partitioning.
分区最大量可达8192(包含子分区的量)
可使用ALTER TABLE EXCHANGE PARTITION与非分区表交换分区表的一个分区或子分区(前提是这两个表除了分区之外表结构一致、且非分区的表不为临时表且无外键引用或被引用的外键非分区表中不包含要交换的分区边界以外的值)
可以限定在一个或者多个分区或子分区内查询 。支持的语句包括SELECT、DELETE、INSERT、REPLACE、UPDATE、LOAD DATA、LOAD XML 。
Partition lock pruning通过消除分区上的锁 , 极大提升了多分区表上DML、DDL操作的性能 。Performance Schema.
更加丰富的信息 。表输入输出 , 表事件过滤 , 线程事件过滤 , 表、索引I/O及表锁摘要信息 , 语句及语句的阶段信息等 。相关的两个参数为 gtid-mode和 enforce-gtid-consistency 。若使用GTIDs在开始一个新的slave或者指向一个新的master时就不必指定日志文件和文件中的位置 , 过程可大大简化 。另外 , 因基于GTID的复制时完全基于事务的 , 因而很容易检查主从一致性 , 只要master上提交的事务在slave上也提交过就可以保证一致 。
Replication
and logging.
开始支持使用GTIDs( global transaction
identifiers)的基于事务的复制 , 使识别和追踪在master上提交并在slave上应用的每个事务成为可能 。
可通过binlog_row_image控制 row-based复制中的row image所包含的列 , 使其可以包含所有列或者不包含BLOB和TEXT列或者仅包含必要的用于唯一标识并执行每一行上的变化的个别列 , 以便于节省磁盘开销、网络开销和内存使用 。
MySQL Server 对二进制日志的读写是 crash-safe的 , 因只记录和读取完整的事务/事件 。默认 , 会记录事件本身和事件的长度 , 然后利用这些信息验证事件是否被正确书写 。也可以通过binlog_checksum 变量使server使用CRC32算法为事件写校验和 , 并通过 master_verify_checksum使server从日志文件中读取校验和 ,
slave-sql-verify-checksum 可以使slave的SQL thread从中继日志中读取校验和 。支持选择将master的连接信息以及slave的中继日志信息保存在文件或者表中 , 相关参数为 master-info-repository和 relay-log-info-repository 。但为了保证复制的crash-safe , 当选择将master的连接信息以及slave的中继日志信息保存在表中时相关的表必须是事务性引擎如InnoDB(5.6.6之后的版本会自动创建为InnoDB表但之前的版本会创建MyISAM表 , 因此在复制开始之前一定要修改为InnoDB引擎)
推荐阅读
- MySQL 5.7如何使用GTID方式搭建复制环境
- Linux如何使用Supervisor管理后台进程
- ICP MySQL Index Condition Pushdown的使用限制有哪些
- 赵雅芝代言的黄金是什么呢
- 如何使用mysqldump对mysql进行备份和恢复
- MongoDB Query的命令行分别是哪些
- MONGO DB too many mongodb page_faults报错排查step by step的示例分析
- 浙江这座小山村,全村人都姓沈,据说江浙地区姓沈的人都来自此处
- MongoDB的本质及怎么进行安装配置
