Mysql 5.6 新特性

随笔,真的随笔,以后理解得更深了再修改。
 
Index Condition Pushdown
更多的让存储引擎去处理Where语句中的条款,避免返回无关字段数据等;
 
Multi-Range Read
对于第二索引来说,它指向的数据未必是在同一个块里,所以查询会乱序,不一定高效。MRR会检索一个查询中的多个范围数据,将它们同部排序后,变成一个大范围的顺序IO,再去读,从而提高效率。
 
File Sort Optimization
对于有order by non_indexed_column和limit x组合语句的查询,如果X条结果可以放在排序缓冲区中,就会提升排序性能;
 
 
Innodb Improvements
Persistent Optimizer Stats
用户可以控制Innodb对每个索引做采样的数据集的大小,以及是否持久化这些统计数据。持久化后即使重启,统计仍在,因而提升性能和有更一致的行为。
 
New INFORMATION_SCHEMA tables
因为使用SQL语句查询比分析show status的文本更方便,所以增加了更多的这样的表。
  • Metrics Tables:innodb_metrics,更多和更丰富的资源和性能监控;
  • System Tables:可以查询Innodb的内部数据字典;
  • Buffer Pool Information Table:显示BP页信息以调优大内存或大压力系统;
 
Split Kernel Mutex
之前是由一个单独的mutex来控制进入Innodb核心操作的并发的,现在改进成了拆成多个mutex以及读写锁,以减少竞争;
 
 
Multi-Threaded Purge
最初Purge操作是在主线程中做的,所以常和其它操作冲突。在5.5中挪到了单独的Purge线程里。现在可以配多个线程,以使Purge多张表时更有效。
 
Separate Flush Thread
之前在主线程中,现在Flush操作也单拎出来做一个线程了。
 
Pruning the Innodb Table Cache
在打开很多表时会造成系统负担,使用了LRU算法来挑出合适的表关掉。
 
 
NoSQL Interface via Memcached
直接使用Memcache API来访问Innodb数据。简化了接口,持久化了Memcache的数据,省了MC的内存。
 
Scalability Improvements
Partition Table操作更方便,效率更高。
  • Explicit Partition Selection:直接指定处理查询的分区;
  • Import/Export for Partitioned Tables:快速将一个分区表的数据和未分区表的数据做切换,从而完成快速导入分区数据;
 
Replication Improvements:
  • Optimized Row-Based Replication:在指定了主键或明确的字段时,只复制相关的字段的Before和After数据,以减少各方面相关开销;
  • Multi-Threaded Slaves:从库的execution thread改成了多个;多线程基于database名来分派任务从而提高并行度;
  • Crash Safe Slaves:对如Innodb这种支持事务的引擎有效。Slave重启后会自动重启中断的DML操作,不需要象现在这样让DBA手动去重设master.info和relaylog.info来使复制继续;
  • Replication Checksums:检查数据损坏,并返回错误,以防Slave自己数据坏掉,从而提升数据完整性。校验和基于二进制日志、Relay Log及单独的Event。这个特性可以指定某个Slave来应用。
  • Time-Delayed Replication:可以指定某些Slave延缓执行操作,以避免误操作。最多可以68年。
  • Informational Log Events:使用Row-based复制时,把用户的操作也写进Binlog,这样也会被复制到从库,从而提升可读性;
  • Remote Binlog Backup:不需从库就可以备份Binlog;
  • Server UUIDs:自动生成UUID,方便各种监控工具获取信息。可以在show slave status命令中得到。对大规模集群很有效。
 
Instrumentation and Diagnostic Improvements via performance-schema
  • Reduced Overhead:代码优化了;
  • Table I/O and Instrumentation:setup_object让DBA可以分析应用是如何产生IO请求的。
  • Table Locks Instrumentation:仍是setup_object表,发现访问最密集的表和其它对象相关的索引;
  • Session/User Level Instrumentation:setup_actors表,监控某个用户或连接产生的压力;
  • Global Performance Metric Summaries:方便DBA写脚本做监控,可以分类,按线程,按对象,按instrumentation point等
  • Table/Index I/O Summary:setup_object表,发现访问最热的表和索引;
  • Table Lock Wait Summary:积累锁相关数据;
  • Statement Level Instrumentation:方便DBA针对单个的Statement做监控和分析;
  • Show Contents of Host Cache - centralized logging of connection errors:众望所归下,集中打印连接错误。方便分析大集群中的错误。
 
posted @ 2013-12-03 23:38  双子靓星  阅读(214)  评论(0编辑  收藏  举报