SlideShare a Scribd company logo
Linux 下的 MySQL调优叶金荣http://www.chinaunix.nethttp://imysql.cn
Linux下的MySQL调优需求来源:WHY1分析问题:WHERE2解决问题:HOW3总结4
1、需求来源:WHY
1、需求来源:WHY – 超负荷运行
1、需求来源:WHY – 提前行动先行一步,利用监控等系统提前发现问题,将问题扼杀在摇篮中
1、需求来源:WHY – 不要赶在老板后面老板很郁闷后果很严重!!
Linux下的MySQL调优需求来源:WHY1分析问题:WHERE2解决问题:HOW3总结4
2、分析问题:WHERE
2、分析问题:WHERE – OSvmstatsiostatspidstatmpstatstopsar
2、分析问题:WHERE – MySQLmysql slow queryshow [global status]、show processlist、show engine innodb statusprofiling(mysql  5.0+)mysql explain其他,如 mysqlreport
2、分析问题:WHERE - vmstatvmstats,iostats,pidstat,sar
2、分析问题:WHERE - iostatvmstats,iostats,pidstat,sar
2、分析问题:WHERE - microslow打上microslow补丁,支持最小微秒单位,同时还能显示执行计划主要选项:long_query_time, log_slow_filter,log_slow_verbosity详细解释查看 http://www.percona.com/docs/wiki/patches:microslow_innodb
2、分析问题:WHERE – 分析slowlog几个slow query log分析工具mysqlsla – 重点推荐mysqldumpslowmysql-explain-slow-logmysql-log-filtermyprofi
2、分析问题:WHERE - mysqlsla
2、分析问题:WHERE – show status/processlistshow [global] status        重点关注key hit ratio, qcache hit ratio, lock, slow query, innodb buffer hit ratio, innodb data/log write/readshow processlist        重点关注一些异常状态的查询,或者耗时很长的查询show engine innodb status        重点关注log flush状态,锁状态,事务状态,内存分配消耗
2、分析问题:WHERE - explain表的读取顺序每个表都是如何读取的可能用到哪些索引,实际使用了哪些索引表是如何引用的查询优化器从每个表中预计读取的记录数其他额外信息,尽量避免Using filesort / Using temporary的查询产生
2、分析问题:WHERE - profilingmysql profiling+------------------------------------------+--------------+| Status                       		             | Duration     |+------------------------------------------+--------------+| (initialization)             		             | 0.000009   || checking query cache for query 	 | 0.000071  || Opening tables                		 | 0.000018   || System lock                   		 | 0.00001     || Table lock                    		 | 0.0000660 || init                          		             | 0.000034   || optimizing                    		 | 0.00001     |
2、分析问题:WHERE - profiling| statistics                    		             | 0.000027  || preparing                     		 | 0.000027  || executing                     		 | 0.000006  || Sending data                  		 | 0.000252 || end                           		             | 0.000035  || query end                     		 | 0.000015  || storing result in query cache  	             | 0.000014  || freeing items                		 | 0.000346 || closing tables                		 | 0.000015  || logging slow query            		 | 0.000007  |+-------------------------------------------+------------+
2、分析问题:WHERE – 其他定期检查多余的索引以及没有使用索引的慢查询利用 mysqlreport产生可读性更强的报告利用 Profiling 剖析一次查询瓶颈所在其他工具,包括监控工具,linux自带工具等
Linux下的MySQL调优需求来源:WHY1分析问题:WHERE2解决问题:HOW3总结4
3、解决问题:HOW
通常硬件是优化的最佳入口,主要是CPU、内存、磁盘、网络,尤其是IO上的提升应用服务器和服务器在一个高速的局域网内通常,新版本的效率不如旧版本,但是可以利用新版本的新功能来从另一方面得到性能上的提升编译优化,采用静态编译等使用更稳定高效的内核使用合适的文件系统,推荐使用xfs(高级文件系统实现者指南)3、解决问题:HOW – 升级硬、软件
3、解决问题:HOW – 升级硬、软件
3、解决问题:HOW – 升级硬、软件
3、解决问题:HOW – 升级硬、软件
3、解决问题:HOW – 升级硬、软件
3、解决问题:HOW – MySQL设置
3、解决问题:HOW – MySQL版本
3、解决问题:HOW – 引擎MyISAMInnoDBTukoDBXtraDBMemcached for MySQLWaffle Grid Project
3、解决问题:HOW – InnodbPlugin
3、解决问题:HOW – 补丁Performance ImprovingIO Pathces: multiple threads,Adaptive checkpoint,IO Control of Insert buffer,multiple pages,Extra rollback segmentsEnhanced read_write locksSplit buffer_pool mutex even moreInnoDB IO patchesUsabilityMicroslowLimit data dictionaryIO access patternShow buffer pool contentShow memory usageShow locks heldExtra undo slots
3、解决问题:HOW – 程序、架构选择合适的应用类型OLTP / OLAP ?业务量估计	读写比?峰值?预计使用年限?缓存利用	是否都需要实时查询?保持线上表尽可能瘦小	速度快、好维护、并发高分表	可扩展、速度快
3、解决问题:HOW – 程序、架构数据库表设计	字段数不是最重要的,重要的是平均行长度,行检索成本最高。适当冗余    便于统计、避免对原表频繁操作、可用触发器维护或定期生成冗余表索引索引不是越多越好,合理利用复合索引及部分索引
3、解决问题:HOW – 其他垂直/水平切分服务器/数据库、表开启MySQL复制,实现读、写分离在复制的基础上,增加负载均衡采用集群+复制(MySQL 6.0+)频繁更新的表,可以分离成父表和子表(内存表)用统计表保存定时统计结果,而不是在大表上直接统计编写存储过程/函数来代替大量的外部应用程序交互确保索引合理利用,尽量使用联合索引适当加大查询缓存(query cache)尽量减少交互次数尽量使用固定格式的SQL语句,查询语句中少用运算或函数缩短每个事务使用适当的字段类型;适当的长度,有需要的时候再扩充
3、解决问题:HOW – 其他分解复杂查询为多个小查询字符型字段采用前缀索引不直接执行 COUNT(*) – innodb多个操作放在一起提交,但要注意事务不能太大日志文件并非越大越好,需要考虑恢复和检查点左连接时把数据量小的表放在前面innodb_flush_log_at_trx_commit可以尝试设置为 2,甚至是 0导入数据时关闭 AUTOCOMMIT以及 UNIQUE_CHECKS、FOREIGN_KEY_CHECKS复杂的查询总是先用EXPLAIN来分析一下定期执行OPTIMIZE TABLE整理碎片用char来代替varchar,MyISAM是这样,InnoDB则相反关闭swappiness,避免发生swappy
3、解决问题:HOW – 升级硬、软件1+1+1+1>4
3、解决问题:HOW – 升级硬、软件优化调试过程Do         See         AdjustDoSeeAdjust
Linux下的MySQL调优需求来源:WHY1分析问题:WHERE2解决问题:HOW3总结4
善用网络资源
My Sql优化(2009 08 28 系统架构师大会)
Q & A谢谢大家!

More Related Content

Viewers also liked (20)

PPTX
El proyecto de tecnologia fabian ramires arbelaez
IE Simona Duque
 
PPTX
Photoparsa Album
Farkhondeh parsa
 
PPT
getepepe
mavilpo
 
PPT
Comunicacion y didactica_mds
Yajaira Castillo
 
PPS
Modelo Auto Avaliação - Workshop Formativo
EB2 Mira
 
PPTX
Plan de marketing efectivo willians rodriguez
spedy93
 
PPT
Gestar Ii Sc
guest78c9c9
 
PPTX
áRea De Projecto7ºC
carlasp
 
PPS
El Caso SXC.hu
digitalvaro
 
PPT
ο Μυστράς
gympentelis
 
PPT
Photoparsa Album
Farkhondeh parsa
 
PPTX
Strategic Marketing- Fundamental Insights
Wiley_India
 
PPT
Маркетинг план
dangerouswork
 
PPS
Charlie Chaplin
Radu Tudor
 
PDF
PAINTS TROPICAL WOMAN 2005
Elizabeth Paiva
 
PDF
Lidings' Representative Clients
Petr Alendeev
 
PPT
Internet of Everything. El Reto de la Innovación
AMETIC
 
PPTX
Photo Parsa Album 112
Farkhondeh parsa
 
El proyecto de tecnologia fabian ramires arbelaez
IE Simona Duque
 
Photoparsa Album
Farkhondeh parsa
 
getepepe
mavilpo
 
Comunicacion y didactica_mds
Yajaira Castillo
 
Modelo Auto Avaliação - Workshop Formativo
EB2 Mira
 
Plan de marketing efectivo willians rodriguez
spedy93
 
Gestar Ii Sc
guest78c9c9
 
áRea De Projecto7ºC
carlasp
 
El Caso SXC.hu
digitalvaro
 
ο Μυστράς
gympentelis
 
Photoparsa Album
Farkhondeh parsa
 
Strategic Marketing- Fundamental Insights
Wiley_India
 
Маркетинг план
dangerouswork
 
Charlie Chaplin
Radu Tudor
 
PAINTS TROPICAL WOMAN 2005
Elizabeth Paiva
 
Lidings' Representative Clients
Petr Alendeev
 
Internet of Everything. El Reto de la Innovación
AMETIC
 
Photo Parsa Album 112
Farkhondeh parsa
 

Similar to My Sql优化(2009 08 28 系统架构师大会) (20)

PPTX
Mysql调优
ken shin
 
PDF
MySQL技术分享:一步到位实现mysql优化
Jinrong Ye
 
PPT
Optimzing mysql
liufabin 66688
 
PPSX
Mysql遇到的一些问题
wang tongchao
 
PPT
Mysql introduction-and-performance-optimization
isnull
 
PDF
MySQL InnoDB 源码实现分析(一)
frogd
 
PDF
My sql数据库开发的三十六条军规
isnull
 
PDF
MySQL数据库开发的三十六条军规
mysqlops
 
PDF
Mysql数据库开发的三十六条军规 石展_完整
Yousri Yan
 
PDF
MySQL数据库设计、优化
Jinrong Ye
 
PPSX
MySQL应用优化实践
mysqlops
 
PPSX
浅谈 My sql 性能调优
thinkinlamp
 
PDF
Mysql fast share
rfyiamcool
 
PDF
浅谈 MySQL 性能调优
Sky Jian
 
PPT
Mysql 培训-优化篇
sunmonth
 
PPT
Sina my sq概述及优化
pigso
 
PPT
海量日志分析系统实践,Dba
Cevin Cheung
 
PPTX
My sql 5.6新特性深入剖析——innodb引擎
frogd
 
PPTX
My sql explain & select
Ming-Ying Wu
 
KEY
111030 gztechparty-小路-云时代的mysql
Zoom Quiet
 
Mysql调优
ken shin
 
MySQL技术分享:一步到位实现mysql优化
Jinrong Ye
 
Optimzing mysql
liufabin 66688
 
Mysql遇到的一些问题
wang tongchao
 
Mysql introduction-and-performance-optimization
isnull
 
MySQL InnoDB 源码实现分析(一)
frogd
 
My sql数据库开发的三十六条军规
isnull
 
MySQL数据库开发的三十六条军规
mysqlops
 
Mysql数据库开发的三十六条军规 石展_完整
Yousri Yan
 
MySQL数据库设计、优化
Jinrong Ye
 
MySQL应用优化实践
mysqlops
 
浅谈 My sql 性能调优
thinkinlamp
 
Mysql fast share
rfyiamcool
 
浅谈 MySQL 性能调优
Sky Jian
 
Mysql 培训-优化篇
sunmonth
 
Sina my sq概述及优化
pigso
 
海量日志分析系统实践,Dba
Cevin Cheung
 
My sql 5.6新特性深入剖析——innodb引擎
frogd
 
My sql explain & select
Ming-Ying Wu
 
111030 gztechparty-小路-云时代的mysql
Zoom Quiet
 
Ad

More from Cevin Cheung (6)

PPT
Mvc架构在discuz!插件开发的应用 wps create_msoffice_check
Cevin Cheung
 
PDF
淘宝图片存储与Cdn系统
Cevin Cheung
 
PDF
淘宝网架构:解密淘宝网的开源架构
Cevin Cheung
 
PPT
Web缓存加速
Cevin Cheung
 
PDF
Timyang新浪微博设计谈
Cevin Cheung
 
PPTX
Mongodbinaction 100122230824-phpapp01
Cevin Cheung
 
Mvc架构在discuz!插件开发的应用 wps create_msoffice_check
Cevin Cheung
 
淘宝图片存储与Cdn系统
Cevin Cheung
 
淘宝网架构:解密淘宝网的开源架构
Cevin Cheung
 
Web缓存加速
Cevin Cheung
 
Timyang新浪微博设计谈
Cevin Cheung
 
Mongodbinaction 100122230824-phpapp01
Cevin Cheung
 
Ad

My Sql优化(2009 08 28 系统架构师大会)