MySQL5.6新特性

浪子不回头ぞ 提交于 2019-11-30 02:30:13

一、server参数默认值设置的变化
 

http://dev.mysql.com/doc/refman/5.6/en/server-default-changes.html

 

 

二、innodb增强
 

1、全文本搜索(full-text search)。
2、支持online DDL。
3、独立表空间的.ibd文件可以在建表时指定目录:
http://dev.mysql.com/doc/refman/5.6/en/tablespace-placing.html
4、导入和导出表空间:copy文件的方式比mysqldump快好多。
http://dev.mysql.com/doc/refman/5.6/en/tablespace-copying.html
5、新增参数innodb_page_size设置页大小。
6、缓冲池flush算法增强:
http://dev.mysql.com/doc/refman/5.6/en/optimizing-innodb.html
7、支持使用nosql api访问innodb表(整合memcached):
http://dev.mysql.com/doc/refman/5.6/en/innodb-memcached.html
8、优化器统计持续化:重启不丢失。
http://dev.mysql.com/doc/refman/5.6/en/optimizing-innodb.html
9、支持read-only事务:
http://dev.mysql.com/doc/refman/5.6/en/optimizing-innodb.html
10、undo log可独立出系统表空间:
http://dev.mysql.com/doc/refman/5.6/en/optimizing-innodb.html
11、redo log最大增至512G。
http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_log_buffer_size
12、innodb支持read_only介质,如DVD,参数--innodb-readonly

http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html
13、INFORMATION_SCHEMA新增相关字典表若干。
14、innodb内部性能增强:包括将flushing操作独立出主线程,减少核心互斥锁,可设置多个清除线程,减少大内存系统的资源争夺。
15、检测死锁算法增强。在非递归情况下死锁检测:死锁信息可以记录到 error 日志,方便分析。
16、buffer pool预热:
http://dev.mysql.com/doc/refman/5.6/en/optimizing-innodb.html

 

 

三、分区增强


1、最大分区个数增值8192,包括分区和子分区。
2、支持分区表的分区(或子分区)与非分区表交换:ALTER TABLE ... EXCHANGE PARTITION
3、查询支持显式的分区语句:如SELECT * FROM t PARTITION (p0, p1) WHERE c < 5
http://dev.mysql.com/doc/refman/5.6/en/partitioning-selection.html
4、简化分区锁增强性能:
http://dev.mysql.com/doc/refman/5.6/en/partitioning-limitations-locking.html

 

 

四、复制和日志增强


1、新增GTID复制:
http://dev.mysql.com/doc/refman/5.6/en/replication-gtids.html
2、新增binlog_row_image
http://dev.mysql.com/doc/refman/5.6/en/replication-options-binary-log.html
参数,可只记录row格式下所用字段的修改(而不是像以前一样记录全部列),节省空间等资源。
3、master.info和relay-log.info支持存储在表中。
4、mysqlbinlog命令支持binlog备份(备份后仍为二进制的binlog而不是文本)http://dev.mysql.com/doc/refman/5.6/en/mysqlbinlog-backup.html
5、支持延时复制:在change master to中增加MASTER_DELAY选项。
6、有多个网络接口的slave可指定使用其中一个:在change master to中增加MASTER_BIND。
7、新增log_bin_basename、relay_log_basename系统变量。
http://dev.mysql.com/doc/refman/5.6/en/replication-options-binary-log.html
http://dev.mysql.com/doc/refman/5.6/en/replication-options-slave.html
8、基于schema级别的多线程复制。
9、binlog支持crash-safe。

 

 

五、优化器增强


1、limit优化:
http://dev.mysql.com/doc/refman/5.6/en/limit-optimization.html
2、MRR优化(Multi-Range Read)
http://dev.mysql.com/doc/refman/5.6/en/mrr-optimization.html
3、ICP优化(Index Condition Pushdown):
http://dev.mysql.com/doc/refman/5.6/en/index-condition-pushdown-optimization.html
4、explain语句支持insert、delete、update、replace语句,并且支持json格式。
5、新增连接算法BKA(Batched Key Access):
http://dev.mysql.com/doc/refman/5.6/en/bnl-bka-optimization.html
6、子查询优化:包括物化和半连接优化等特性。
7、面向开发者的优化器追踪特性。

 

 

六、数据类型
 

1、time、datetime、timestamp类型支持微妙(小数点后6位);表格式的slowlog将不会被截断。
2、datetime类型支持DEFAULT CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP。
3、增加explicit_defaults_for_timestamp系统变量明确timestamp默认值。
4、year(2)被限制,将转换成year(4)。

 

 

七、Host cache增强


1、新增Connection_errors_xxx系列状态参数。
http://dev.mysql.com/doc/refman/5.6/en/server-status-variables.html
2、新增host_cache_size系统变量。

 

 

八、删除的特性


1、--log和log移除,用 --general_log 和 --general_log_file=file_name 替换。
http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html
2、log_slow_queries移除,只有slow_query_log。
3、--one-thread系统参数移除,用 --thread_handling=no-threads 替换。
http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html
4、--safe-mode 系统参数移除。
5、--skip-thread-priority系统参数移除。
6、--table-cache移除,用 table_open_cache 替换。
http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html
7、--init-rpl-role、--rpl-recovery-rank、rpl_recovery_rank、Rpl_status移除。
8、engine_condition_pushdown系统变量移除,engine_condition_pushdown表示并入optimizer_switch 变量。
http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html
9、have_csv, have_innodb, have_ndbcluster, have_partitioning移除,用show engines代替。
10、sql_big_tables移除,用big_tables 代替。
http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html
11、sql_low_priority_updates被low_priority_updates 代替。
http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html
12、sql_max_join_size被max_join_size 代替。
http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html
13、max_long_data_size被max_allowed_packet 代替。
http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html
14、FLUSH MASTER 和 FLUSH SLAVE语句移除,使用reset master和reset slave代替。
15、slave start和slave stop语句移除,用start slave和stop slave代替。
16、SHOW AUTHORS 和 SHOW CONTRIBUTORS 语句移除。
17、set语句的OPTION 和nd ONE_SHOT移除。

 

 

九、 MySQL Performance Schema 增强


1、Statements/execution stages - 找出消耗资源热点SQL
2、Table and Index I/O : 那些表和索引引起负载过高 ?
3、Table Locks : 那些表引起竞争?
4、Users/Hosts/Accounts 级别资源消耗 :找出消耗资源最多的Users/Hosts/Accounts
5、Network I/O : 网络还是应用程序? 会话闲置多久?
6、通过 thread, user, host, account, object聚合总结。

具体信息请阅读mysql5.6手册:http://dev.mysql.com/doc/refman/5.6/en/index.html

PS:原文来自运维生存空间:http://www.ttlsa.com/mysql/summary-of-the-new-features-of-mysql5_6/

 

为了方便大家交流,本人开通了微信公众号,和QQ群291519319。喜欢技术的一起来交流吧

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!