网站大量收购独家精品文档,联系QQ:2885784924

mysql性能优化慢查询分析优化索引和配置.doc

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
mysql性能优化慢查询分析优化索引和配置

mysql性能优化-慢查询分析、优化索引和配置 目录 一、优化概述 二、查询与索引优化分析 1性能瓶颈定位 Show命令 慢查询日志 explain分析查询 profiling分析查询 ? 2索引及查询优化 三、配置优化 1) ? ? ?max_connections 2) ? ? ?back_log 3) ? ? ?interactive_timeout 4) ? ? ?key_buffer_size 5) ? ? ?query_cache_size 6) ? ? ?record_buffer_size 7) ? ? ?read_rnd_buffer_size 8) ? ? ?sort_buffer_size 9) ? ? ?join_buffer_size 10) ? ?table_cache 11) ? ?max_heap_table_size 12) ? ?tmp_table_size 13) ? ?thread_cache_size 14) ? ?thread_concurrency 15) ? ?wait_timeout ? 一、?优化概述 MySQL数据库是常见的两个瓶颈是CPU和I/O的瓶颈,CPU在饱和的时候一般发生在数据装入内存或从磁盘上读取数据时候。磁盘I/O瓶颈发生在装入数据远大于内存容量的时候,如果应用分布在网络上,那么查询量相当大的时候那么平瓶颈就会出现在网络上,我们可以用mpstat, iostat, sar和vmstat来查看系统的性能状态。 除了服务器硬件的性能瓶颈,对于MySQL系统本身,我们可以使用工具来优化数据库的性能,通常有三种:使用索引,使用EXPLAIN分析查询以及调整MySQL的内部配置。 二、查询与索引优化分析 在优化MySQL时,通常需要对数据库进行分析,常见的分析手段有慢查询日志,EXPLAIN?分析查询,profiling分析以及show命令查询系统状态及系统变量,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能。 1 性能瓶颈定位 Show命令 我们可以通过show命令查看MySQL状态及变量,找到系统的瓶颈: Mysql show status ——显示状态信息(扩展show status like ‘XXX’) Mysql show variables ——显示系统变量(扩展show variables like ‘XXX’) Mysql show innodb status ——显示InnoDB存储引擎的状态 Mysql show processlist ——查看当前SQL执行,包括执行状态、是否锁表等 Shell mysqladmin variables -u username -p password——显示系统变量 Shell mysqladmin extended-status -u username -p password——显示状态信息 查看状态变量及帮助: Shell mysqld –verbose –help [|more #逐行显示] ? 比较全的Show命令的使用可参考: //18/ 慢查询日志 慢查询日志开启: 在配置文件f或my.ini中在[mysqld]一行下面加入两个配置参数 log-slow-queries=/data/mysqldata/slow-query.log??????????? long_query_time=2??????????????????????? ????????????????????????????????????????? 注:log-slow-queries参数为慢查询日志存放的位置,一般这个目录要有mysql的运行帐号的可写权限,一般都将这个目录设置为mysql的数据存放目录; long_query_time=2中的2表示查询超过两秒才记录; 在f或者my.ini中添加log-queries-not-using-indexes参数,表示记录下没有使用索引的查询。 log-slow-queries=/data/mysqldata/slow-query.log??????????? long_query_time=10??????????????????????????????????????????????????????????????? log-queries-not-using-indexes????????????????????????????????????????????? 慢查询日志开启方法二: 我们可以通过命令行设置变量来即时启动慢日志查询。由下图可知慢日志没有打开,slow_launch_time=#?表示如果建立线程花费了比这个值更长的时间,slow_launch_thre

文档评论(0)

youshen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档