More Related Content
Similar to 阿里集团MySQL特性(5.5介绍)
Similar to 阿里集团MySQL特性(5.5介绍) (20)
阿里集团MySQL特性(5.5介绍)
- 1. 阿里集团MySQL介绍
(5.5特性)
集团-数据库-MySQL
xiyu.lh@taobao.com
1
- 2. 现状
5.1.48
停止支持
5.1.61
RDS定制版本
5.5
重点发展版本(阿里集团版本)
2
- 3. 5.5
源于Percona-5.5.18
改动主要为:
backport 5.5新版本的bugfix
fix集团MySQL DBA遇到的bug
dev使用集团MySQL遇到的需求
集团MySQL为内部版本
3
- 5. 5.5:QC额外锁开销
Percona
启动时disable QC
MySQL
编译时without_query_cache
MariaDB-5.5亦解决(和QC作者沟通)
集团MySQL彻底解决此问题
团队博客1(5.1)
团队博客2(5.5)
5
- 6. 5.5:复制回路事件自动检测
server_id异常变动
event在拓朴结构中节点间来回传递
集团MySQL版本自动识别并在error.log中
打印日志
团队博客(TBD)
6
- 11. 5.5:新特性1
InnoDB Change Buffering
默认版本从insert->all
(因为all未稳定,集团版本默认仍为insert)
如果page不在BP中,稍后一旦从disk上读到
Cache中再 merge
SSD随机读和顺序读相当, Percona建议为none
(需要测试验证)
11
- 13. 5.5:新特性3
multiple buffer pools
多个BP:
减少BP flush_list锁竞争
page通过hash分配到BP上
尽可能地扩散hot pages
过多的BP会增加内部额外开销
13
- 15. 5.5:新特性5
extra rollback segments
增加事务并发性
innodb_extra_rsegments被废弃
写入型负载需要更多的rollback segments
15
- 16. 5.5:新特性6
innodb_fast_checksum
if (!fast_checksum) then old_checksum
页面可能有混合的checksum
新写页面采用fast checksum
完全采用此特性,必须重建表
innodb_fast_checksums disable->enable,需重建表
16
- 17. 5.5:新特性7
separate purge thread
5.5之前是在master线程中
5.5默认innodb_purge_threads=1
insert/update型,建议对比多个purge线程
(注意考查稳定性)
集团MySQL的purge_batch_size选项
防止批量purge时MySQL阻塞业务
17
- 18. 5.5:新特性8
native aio
默认为 AIO
将I/O merge的负担交给kernel(相比模拟AIO)
性能比模拟aio高不了多少
更稳定,经常更多人测试
能减少1/3的恢复时间
18
- 19. 5.5:新特性9
adaptive flushing
innodb_io_capacity &
innodb_max_dirty_pages_pct
顺序相邻的脏页
更适用于解决多个BP刷脏性能
5.5中更平滑
reflex, estimate, keep_average
5.6性能更优
19
- 20. 5.5:新特性10
optimize dumping
innodb-optimize-keys for mysqldump
非聚簇索引会在load完数据再创建
建表时,忽略KEY, UNIQUE KEY, 和 CONSTRAINT
导完数据再用ALTER TABLE来补全之前突略的语句
20
- 21. 5.5:新特性11
快速删表
innodb_lazy_drop_table
Facebook & 5.6从flush_list刷
Percona更简单,直接标记space_id为deleted
团队博客
21
- 22. 5.5:新特性12
ibd自动扩展性能问题
采用FB的补丁
5.6增加node->being_extended
团队博客
22