收集合并了大神的描述
mysql5.5相对mysql5.1特性
性能提升
- 默认InnoDB plugin引擎。具有提交、回滚和crash恢复功能、ACID兼容
- 行级锁(一致性的非锁定读 MVCC)
- 表与索引存储在表空间、表大小无限制
- 支持dynamic(primary key缓存内存 避免主键查询引起的IO )与compressed(支持数据及索引压缩)行格式
- InnoDB plugin文件格式Barracuda、支持表压缩、节约存储、提供内存命中率、truncate table速度更快
- 原InnoDB只有一个UndoSegment,最多支持1023的并发;现在有128个Segments,支持128K个并发(同样,解决高并发带来的事务回滚)
- Innodb_thread_concurrency默认为0,线程并发数无限制,可根据具体应用设置最佳值
- Innodb_io_capacity可以动态调整刷新脏页的数量,改善大批量更新时刷新脏页跟不上导致的性能下降问题。Default:200,跟硬盘的IOPS有关
- 充分利用CPU多核处理能力innodb_read_io_threads阈值:1-64innodb_write_io_threads 阈值:1-64根据数据库的读写比灵活设置,充分发挥多CPU、高性能存储设备的性能,不支持动态加载
- 自适应刷新脏页
- 热数据存活更久
- buffer pool多实例:innodb_buffer_pool_instances 参数增加innodb_buffer_pool实例个数,大大降低buffer pool的mutex争抢过热情况
- Linux上实现异步IO
- 重新支持组提交
稳定性提升
- 支持半同步Replication
- 增加Relay Log 自我修复功能
- Crash recovery
- 引入红-黑树做插入排序的中间数据结构,时间复杂度大大降低,减少恢复时间
- Thread Pool 分组排队限流
mysql5.6相对mysql5.5特性
- 默认参数的改变
- Back_log排队队列
- 支持全文索引
- 支持online DDL create,alter,drop
- 可以在建表时指定表空间位置
create table external (x int unsigned not null primary key)data directory = '/volumes/external1/data';
- 新增