MySQL性能调优最佳实践.ppt
《MySQL性能调优最佳实践.ppt》由会员分享,可在线阅读,更多相关《MySQL性能调优最佳实践.ppt(84页珍藏版)》请在三一办公上搜索。
1、MySQL 性能优化最佳实践About me简朝阳(sky000)Oracle ACE(Expertise:MySQL)技术保障部 麦包包Blog:http:/Twitter:sky000Weibo:简朝阳DTCC2012,2012/4/6,1,MySQL 性能优化最佳实践优化过程找出瓶颈,确认结果,优化,设定目标,实施优化DTCC2012,2012/4/6,2,MySQL 性能优化最佳实践,找出瓶颈2012/4/6,瓶颈,3,存储容量,容量白菜价2TB很普及了DTCC2012,MySQL 性能优化最佳实践找出瓶颈一般很难跑满,存储容量,万兆已经很多,Network(IOPS/吞吐量)瓶颈DT
2、CC2012,2012/4/6,4,MySQL 性能优化最佳实践找出瓶颈存储容量,Network(IOPS/吞吐量),Linux单机支持过百G价格较之过去已大降,DRAM瓶颈DTCC2012,2012/4/6,5,MySQL 性能优化最佳实践找出瓶颈存储容量Network(IOPS/吞吐量),DRAM,X86 Nehalem,SMP,NUMA4路 PC Server 32核,30%CPU瓶颈DTCC2012,2012/4/6,6,MySQL 性能优化最佳实践找出瓶颈存储容量Network(IOPS/吞吐量)DRAM,CPU,OLTP:iopsOLAP:吞吐量,2012/4/6,瓶颈,7,IO(
3、IOPS/吞吐量),60%瓶颈在 IOSSD?DTCC2012,MySQL 性能优化最佳实践设定目标极限不可能突破设备能力目标DTCC2012,2012/4/6,8,MySQL 性能优化最佳实践设定目标,极限不可能突破,设备能力,业务需求,一切以需求为导向,目标DTCC2012,2012/4/6,9,MySQL 性能优化最佳实践设定目标,极限不可能突破,设备能力,业务需求,一切以需求为导向,目标应用环境环境影响可行性DTCC2012,2012/4/6,10,MySQL,MySQL 性能优化最佳实践实施优化对象HardwareOSParamsEngineSchemaIndexSQL,实施,DTC
4、C2012,2012/4/6,11,MySQL,MySQL 性能优化最佳实践实施优化,对象HardwareOSParamsEngineSchemaIndexSQL,方法方法,实施,DTCC2012,2012/4/6,12,MySQL,MySQL 性能优化最佳实践实施优化,2012/4/6,对象HardwareOSParamsEngineSchemaIndexSQL,方法方法,实施13,误区误区,DTCC2012,MySQL,MySQL 性能优化最佳实践实施优化,对象,方法,误区,最佳实践,HardwareOS,ParamsEngine,方法,误区,经验,SchemaIndexSQL,实施,DT
5、CC2012,2012/4/6,14,MySQL 性能优化最佳实践实施优化转速,容量,接口HDD:150 iops,200MBSSD:10 x 1000 x,400MB磁盘背景DTCC2012,2012/4/6,15,MySQL 性能优化最佳实践实施优化主频,多核,超线程SMP,NUMA,MPP,2012/4/6,磁盘,CPU背景16,DTCC2012,MySQL 性能优化最佳实践实施优化,2012/4/6,磁盘,CPU背景17,索引,Balance Tree缩短检索路径有序DTCC2012,MySQL 性能优化最佳实践实施优化,磁盘,CPU,背景,索引,SQL执行计划如何获得:explain
6、如何分析:DocsDTCC2012,2012/4/6,18,MySQL 性能优化最佳实践实施优化,磁盘,CPU,背景,索引,2012/4/6,MySQL简单,轻型,开放多线程,插件式SQL+Storage Engine,19,SQL,DTCC2012,MySQL 性能优化最佳实践实施优化,磁盘,CPU,插件式,可自由更换,存储引擎,背景,索引,开放型,可 自行开发多样性,特性不一,MySQL,SQL,并存性,可并存使用DTCC2012,2012/4/6,20,Hardware,MySQL 性能优化最佳实践方法,Disk,提高磁盘转速增加磁盘数量选好磁盘接口,Raid CardCPUDTCC20
7、12,2012/4/6,21,Hardware,MySQL 性能优化最佳实践误区,Disk,容量越大越好?FC磁盘一定比SAS盘快?磁盘 Cache 越大越好?,Raid CardCPUDTCC2012,2012/4/6,22,Hardware,MySQL 性能优化最佳实践最佳实践OLTP:小容量”高”转速,Disk,OLAP:大容量”低”转速(钱多可以高转速)磁盘数量尽可能多,有钱可以上 SSD(IO 瓶颈场景下)Raid CardCPUDTCC2012,2012/4/6,23,Hardware,MySQL 性能优化最佳实践方法OLTP:小容量”高”转速,DiskRaid Card,OLAP
8、:大容量”低”转速(钱多可以高转速)磁盘数量尽可能多有钱可以上 SSD(IO 瓶颈场景下)增加Raid卡Cache容量,提升 Cache 利用率确保数据安全CPUDTCC2012,2012/4/6,24,Hardware,MySQL 性能优化最佳实践误区OLTP:小容量”高”转速,DiskRaid Card,OLAP:大容量”低”转速(钱多可以高转速)磁盘数量尽可能多有钱可以上 SSD(IO 瓶颈场景下)读写都是用 Cache 提升效率?,Raid10一定比Raid5快?带电池的 Raid 卡数据一定安全?CPUDTCC2012,2012/4/6,25,Hardware,MySQL 性能优化最
9、佳实践最佳实践OLTP:小容量”高”转速,DiskRaid Card,OLAP:大容量”低”转速(钱多可以高转速)磁盘数量尽可能多有钱可以上 SSD(IO 瓶颈场景下)Cache 只供写使用,Direct 读取OLTP Raid10,Strip Size 参考DB,OLAP Raid5关注 Raid 卡充放电带来的 Cache 失效预读只对连续读有效,OLTP 关闭预读CPUDTCC2012,2012/4/6,26,Hardware,MySQL 性能优化最佳实践方法OLTP:小容量”高”转速,2012/4/6,DiskRaid CardCPU,OLAP:大容量”低”转速(钱多可以高转速)磁盘数
10、量尽可能多有钱可以上 SSD(IO 瓶颈场景下)Cache 只供写使用,Direct 读取OLTP Raid10,Strip Size 参考DBOLAP Raid5关注 Raid 卡充放电带来的 Cache 失效预读只对连续读有效,OLTP 关闭预读提高CPU运算能力(频率?)缩短 CPU 访问数据的路径(缓存?)27,DTCC2012,Hardware,MySQL 性能优化最佳实践误区OLTP:小容量”高”转速,2012/4/6,DiskRaid CardCPU,OLAP:大容量”低”转速(钱多可以高转速)磁盘数量尽可能多有钱可以上 SSD(IO 瓶颈场景下)Cache 只供写使用,Dire
11、ct 读取OLTP Raid10,Strip Size 参考DBOLAP Raid5关注 Raid 卡充放电带来的 Cache 失效预读只对连续读有效,OLTP 关闭预读CPU 越多越好?Core 越多越好?28,DTCC2012,Hardware,MySQL 性能优化最佳实践最佳实践OLTP:小容量”高”转速,2012/4/6,DiskRaid CardCPU,OLAP:大容量”低”转速(钱多可以高转速)磁盘数量尽可能多有钱可以上 SSD(IO 瓶颈场景下)Cache 只供写使用,Direct 读取OLTP Raid10,Strip Size 参考DBOLAP Raid5关注 Raid 卡充
12、放电带来的 Cache 失效预读只对连续读有效,OLTP 关闭预读使用主频更高的 CPU使用缓存更大的 CPU8个Core 比较合适,不超过16 CoreCore比较多可以单机多实例29,DTCC2012,OS,MySQL 性能优化最佳实践方法确保安全:有日志,能恢复,File System,OLTP:提高大文件下随机I/O性能OLAP:提高大文件下连续I/O性能,降低管理成本I/O SchedulerCPU/DRAMDTCC2012,2012/4/6,30,OS,MySQL 性能优化最佳实践误区,File System,OS默认自带的就是最好的?功能最强的才是最好的?,性能最高的才是最好的?
13、I/O SchedulerCPU/DRAMDTCC2012,2012/4/6,31,OS,MySQL 性能优化最佳实践最佳实践,File System,XFS 非常适合 MySQLXFS要注意su(stripe size)和sw(stripe width),ZFS 非常适合备份管理I/O SchedulerCPU/DRAMDTCC2012,2012/4/6,32,OS,MySQL 性能优化最佳实践方法,File SystemI/O Scheduler,XFS 非常适合 MySQLXFS要注意su(stripe size)和sw(stripe width)ZFS 非常适合备份管理尽量减少不必要阻
14、塞,尽量降低随机I/O访问的延时CFQ,Deadline,NOOP和Anticipatory 差异CPU/DRAMDTCC2012,2012/4/6,33,OS,MySQL 性能优化最佳实践误区,File SystemI/O Scheduler,XFS 非常适合 MySQLXFS要注意su(stripe size)和sw(stripe width)ZFS 非常适合备份管理公平的才是最合适的?,智能的就是合适的?CPU/DRAMDTCC2012,2012/4/6,34,OS,MySQL 性能优化最佳实践最佳实践,File SystemI/O Scheduler,XFS 非常适合 MySQLXFS
15、要注意su(stripe size)和sw(stripe width)ZFS 非常适合备份管理CFQ适用于io大小非常均匀的场景稍微复杂点的OLTP最好更换为 Deadline,I/O性能不是瓶颈的时候使用NOOPAnticipatory不适用数据库场景CPU/DRAMDTCC2012,2012/4/6,35,OS,MySQL 性能优化最佳实践方法,2012/4/6,File SystemI/O SchedulerCPU/DRAM,XFS 非常适合 MySQLXFS要注意su(stripe size)和sw(stripe width)ZFS 非常适合备份管理CFQ适用于io大小非常均匀的场景稍
16、微复杂点的OLTP最好更换为 DeadlineI/O性能不是瓶颈的时候使用NOOPAnticipatory不适用数据库场景提升 CPU 利用率均衡 CPU 资源提高内存利用率36,DTCC2012,OS,MySQL 性能优化最佳实践误区,2012/4/6,File SystemI/O SchedulerCPU/DRAM,XFS 非常适合 MySQLXFS要注意su(stripe size)和sw(stripe width)ZFS 非常适合备份管理CFQ适用于io大小非常均匀的场景稍微复杂点的OLTP最好更换为 DeadlineI/O性能不是瓶颈的时候使用NOOPAnticipatory不适用数
17、据库场景CPU越多越好?NUMA 一定能提高性能?内存越大越好?37,DTCC2012,OS,MySQL 性能优化最佳实践最佳实践,2012/4/6,File SystemI/O SchedulerCPU/DRAM,XFS 非常适合 MySQLXFS要注意su(stripe size)和sw(stripe width)ZFS 非常适合备份管理CFQ适用于io大小非常均匀的场景稍微复杂点的OLTP最好更换为 DeadlineI/O性能不是瓶颈的时候使用NOOPAnticipatory不适用数据库场景单实例关闭 NUMACPU Core达到16最好双实例多实例进行 CPU 绑定单实例没必要超过64
18、GB内存38,DTCC2012,Params,DTCC2012,MySQL 性能优化最佳实践方法query_cache:缓存结果集,极高效,与SQL语句一一对应binlog_cache_size:缓存binlog数据,影响所有写入操作的性能table_cache:缓存打开的表信息,MyISAM会占用较多,表多的需注意,Cache/Buffer,thread_cache:缓存连接线程,影响连接建立效率,对短连接影响较大key_buffer_size:缓存MyISAM索引,对MyISAM表性能影响极大,innodb_db_buffer_pool_size:对InnoDB极大影响,缓存索引及数据in
19、nodb_log_buff_size:缓存InnoDB写入日志,影响写入效率innodb_max_dirty_pages_pct:设置InnoDB Buffer中脏页占比ConnctionIO延伸阅读:http:/,2012/4/6,39,Params,DTCC2012,MySQL 性能优化最佳实践误区query_cache:一定要有?越大越好?binlog_cache_size:越大越好?table_cache:越多越好?,Cache/Buffer,thread_cache:越多越好?key_buffer_size:缓存数据?越大越好?,innodb_db_buffer_pool_size:
20、越大越好?innodb_log_buff_size:越大越好?innodb_max_dirty_pages_pct:脏页占比越多越快?ConnctionIO延伸阅读:http:/,2012/4/6,40,Params,DTCC2012,MySQL 性能优化最佳实践最佳实践query_cache:不超过256MB,除非基本静态,InnoDB无效binlog_cache_size:2MB4MB,32MBtable_cache:1024,具体需要根据实际环境调整,Cache/Buffer,thread_cache:1024,max_connectioskey_buffer_size:无MyISAM
21、16MB,否则所有MYI大小之内尽可能大,innodb_db_buffer_pool_size:仅InnoDB,所有文件大小之内尽可能大innodb_log_buff_size:4MB8MB,32MBinnodb_max_dirty_pages_pct:1G/innodb_db_buffer_pool_size(G)*100ConnctionIO延伸阅读:http:/,2012/4/6,41,Params,DTCC2012,MySQL 性能优化最佳实践方法query_cache:不超过256MB,除非基本静态,InnoDB无效binlog_cache_size:2MB4MB,32MBtable
22、_cache:1024,具体需要根据实际环境调整,Cache/BufferConnction,thread_cache:1024,max_connectioskey_buffer_size:无MyISAM 16MB,否则所有MYI大小之内尽可能大innodb_db_buffer_pool_size:仅InnoDB,所有文件大小之内尽可能大innodb_log_buff_size:4MB8MB,32MBinnodb_max_dirty_pages_pct:1G/innodb_db_buffer_pool_size(G)*100max_connections:影响能够保持的最大客户端连接数,属于自
23、我保护类max_connect_errors:某个用户允许最大登录失败次数,类似于防破解,back_log:影响突发连接暴增场景,比如服务器重启后瞬间skip-name-resolve:取消对客户端的 DNS 反解,影响连接和授权interactive_timeout和wait_timeout:影响空闲连接最大可空闲时间IO延伸阅读:http:/,2012/4/6,42,Params,DTCC2012,MySQL 性能优化最佳实践误区query_cache:不超过256MB,除非基本静态,InnoDB无效binlog_cache_size:2MB4MB,32MBtable_cache:1024
24、,具体需要根据实际环境调整,Cache/BufferConnction,thread_cache:1024,max_connectioskey_buffer_size:无MyISAM 16MB,否则所有MYI大小之内尽可能大innodb_db_buffer_pool_size:仅InnoDB,所有文件大小之内尽可能大innodb_log_buff_size:4MB8MB,32MBinnodb_max_dirty_pages_pct:1G/innodb_db_buffer_pool_size(G)*100max_connections:最大连接数越大越好?max_connect_errors:最
25、大错误数越小越好?,back_log:back log队列越长越好吗?skip-name-resolve:一定要忽略 DNS 反解吗?interactive_timeout和wait_timeout:空闲时间越长越好吗?IO延伸阅读:http:/,2012/4/6,43,Params,DTCC2012,MySQL 性能优化最佳实践最佳实践query_cache:不超过256MB,除非基本静态,InnoDB无效binlog_cache_size:2MB4MB,32MBtable_cache:1024,具体需要根据实际环境调整,Cache/BufferConnction,thread_cache:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MySQL 性能 最佳 实践
链接地址:https://www.31ppt.com/p-2816984.html