一:主要查看命令
SHOW STATUS; FLUSH STATUS;
二:调优的参数和各项参数比
[1] 查看当前连接数 SHOW STATUS LIKE 'Thread_%'; Thread_cached: 被缓存的线程的个数 Thread_running:处于激活状态的线程的个数 Thread_connected:当前连接的线程的个数 Thread_created:总共被创建的线程的个数 [2] TCH = Thread Cache Hits 缓存命中率 Thread_connected = SHOW GLOBAL STATUS LIKE Thread_created; Connections = SHOW GLOBAL STATUS LIKE 'Connections'; TCH = (1 - (Threads_created / Connections)) * 100 如果 TCH数小于90%,创建连接耗费了时间,增大Thread_cached数量 [3] 查看活动连接内容 SHOW PROCESSLIST; [4] QPS(每秒查询处理量)MyISAM 引擎 Questions = SHOW GLOBAL STATUS LIKE 'Questions'; Uptime = SHOW GLOBAL STATUS LIKE 'Uptime'; QPS=Questions/Uptime [5] TPS(每秒传输的事物处理个数),即服务器每秒处理的事务数,如果是InnoDB会显示,没有InnoDB就不会显示。 Com_commit = SHOW GLOBAL STATUS LIKE 'Com_commit'; Com_rollback = SHOW GLOBAL STATUS LIKE 'Com_rollback'; Uptime = SHOW GLOBAL STATUS LIKE 'Uptime'; TPS=(Com_commit + Com_rollback)/Uptime 注:QPS 和 TPS值一定要实时监控,如果接近架构搭建时的测试峰值,愿上帝与你同在 [6] 读写比(Read/Writes Ratio),优化数据库的重要依据,读的多就去优化读,写的多就去优化写 Qcache_hits = SHOW GLOBAL STATUS LIKE 'Qcache_hits'; Com_select = SHOW GLOBAL STATUS LIKE 'Com_select'; Com_insert = SHOW GLOBAL STATUS LIKE 'Com_insert'; Com_update = SHOW GLOBAL STATUS LIKE 'Com_update'; Com_delete = SHOW GLOBAL STATUS LIKE 'Com_delete'; Com_replace = SHOW GLOBAL STATUS LIKE 'Com_replace'; R/W=(Com_select + Qcache_hits) / (Com_insert + Com_update + Com_delete + Com_replace) * 100 [7] 新版本上线时要着重关注慢查询,让测试去踢开发者的屁股吧 Slow queries per minute Slow_queries = SHOW GLOBAL STATUS LIKE 'Slow_queries'; Uptime = SHOW GLOBAL STATUS LIKE 'Uptime'; SQPM = Slow_queries / (Uptime/60) Slow queries / Questions Ratio Slow_queries = SHOW GLOBAL STATUS LIKE 'Slow_queries'; Questions = SHOW GLOBAL STATUS LIKE 'Questions'; S/Q = Slow_queries/Questions [8] 没有使用索引而造成的full_join,优化索引去吧 Full_join per minute Select_full_join = SHOW GLOBAL STATUS LIKE 'Select_full_join'; Uptime = SHOW GLOBAL STATUS LIKE 'Uptime'; FJPM=Select_full_join / (Uptime/60) [9] InnoDB Buffer命中率 目标 95%-99%; Innodb buffer read hits Innodb_buffer_pool_reads = SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_reads'; Innodb_buffer_pool_read_requests = SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_read_requests'; IFRH=(1 - Innodb_buffer_pool_reads/Innodb_buffer_pool_read_requests) * 100 [10] table_cache应该大于 Open_tables 小于 Opened_tables Table Cache Open_tables= SHOW GLOBAL STATUS LIKE 'Open_tables'; Opened_tables= SHOW GLOBAL STATUS LIKE 'Opened_tables'; table_cache= SHOW GLOBAL STATUS LIKE 'table_cache'; [11] Temp tables to Disk ratio Created_tmp_tables = show global status like 'Created_tmp_tables'; Created_tmp_disk_tables = show global status like 'Created_tmp_disk_tables'; TDR=(Created_tmp_disk_tables/Created_tmp_tables)*100 [12] SHOW GLOBAL STATUS LIKE 'Innodb_row_lock_%'; Innodb_row_lock_current_waits Innodb_row_lock_time Innodb_row_lock_time_avg Innodb_row_lock_time_max Innodb_row_lock_waits
三:具体操作步骤如下:
1.系统mysql的进程数 ps -ef | grep "mysql" | grep -v "grep" | wc –l 2.Slave_running mysql > show status like 'Slave_running'; 如果系统有一个从复制服务器,这个值指明了从服务器的健康度 3.Threads_connected mysql > show status like 'Threads_connected'; 当前客户端已连接的数量。这个值会少于预设的值,但你也能监视到这个值较大,这可保证客户端是处在活跃状态。 4.Threads_running mysql > show status like 'Threads_running'; 如果数据库超负荷了,你将会得到一个正在(查询的语句持续)增长的数值。这个值也可以少于预先设定的值。这个值在很短的时间内超过限定值是没问题的。当Threads_running值超过预设值时并且该值在5秒内没有回落时, 要同时监视其他的一些值。 5.Aborted_clients mysql > show status like 'Aborted_clients'; 客户端被异常中断的数值,即连接到mysql服务器的客户端没有正常地断开或关闭。对于一些应用程序是没有影响的,但对于另一些应用程序可能你要跟踪该值,因为异常中断连接可能表明了一些应用程序有问题。 6.Questions mysql> show status like 'Questions'; 每秒钟获得的查询数量,也可以是全部查询的数量,根据你输入不同的命令会得到你想要的不同的值。 7.Handler_* mysql> show status like 'Handler_%'; 如果你想监视底层(low-level)数据库负载,这些值是值得去跟踪的。 如果Handler_read_rnd_next值相对于你认为是正常值相差悬殊,可能会告诉你需要优化或索引出问题了。Handler_rollback表明事务被回滚的查询数量。你可能想调查一下原因。 8.Opened_tables mysql> show status like 'Opened_tables'; 表缓存没有命中的数量。如果该值很大,你可能需要增加table_cache的数值。典型地,你可能想要这个值每秒打开的表数量少于1或2。 9.Select_full_join mysql> show status like 'Select_full_join'; 没有主键(key)联合(Join)的执行。该值可能是零。这是捕获开发错误的好方法,因为一些这样的查询可能降低系统的性能。 10.Select_scan mysql> show status like 'Select_scan'; 执行全表搜索查询的数量。在某些情况下是没问题的,但占总查询数量该比值应该是常量(即Select_scan/总查询数量商应该是常数)。如果你发现该值持续增长,说明需要优化,缺乏必要的索引或其他问题。 11.Slow_queries mysql> show status like 'Slow_queries'; 超过该值(--long-query-time)的查询数量,或没有使用索引查询数量。对于全部查询会有小的冲突。如果该值增长,表明系统有性能问题。 12.Threads_created mysql> show status like 'Threads_created'; 该值应该是低的。较高的值可能意味着你需要增加thread_cache的数值,或你遇到了持续增加的连接,表明了潜在的问题。 13.客户端连接进程数 shell> mysqladmin processlist mysql> show processlist; 你可以通过使用其他的统计信息得到已连接线程数量和正在运行线程的数量,检查正在运行的查询花了多长时间是一个好主意。如果有一些长时间的查询,管理员可以被通知。你可能也想了解多少个查询是在"Locked"的状态—---该值作为正在运行的查询不被计算在内而是作为非活跃的。一个用户正在等待一个数据库响应。 14.innodb状态 mysql> show innodb status; 该语句产生很多信息,从中你可以得到你感兴趣的。首先你要检查的就是“从最近的XX秒计算出来的每秒的平均负载”。 (1)Pending normal aio reads: 该值是innodb io请求查询的大小(size)。如果该值大到超过了10—20,你可能有一些瓶颈。 (2)reads/s, avg bytes/read, writes/s, fsyncs/s:这些值是io统计。对于reads/writes大值意味着io子系统正在被装载。适当的值取决于你系统的配置。 (3)Buffer pool hit rate:这个命中率非常依赖于你的应用程序。当你觉得有问题时请检查你的命中率 (4)inserts/s, updates/s, deletes/s, reads/s:有一些Innodb的底层操作。你可以用这些值检查你的负载情况查看是否是期待的数值范围。 15.主机性能状态 shell> uptime 16.CPU使用率 shell> top shell> vmstat 17.磁盘IO shell> vmstat shell> iostat 18.swap进出量(内存) shell> free 19.MySQL错误日志 在服务器正常完成初始化后,什么都不会写到错误日志中,因此任何在该日志中的信息都要引起管理员的注意。 20.InnoDB表空间信息 InnoDB仅有的危险情况就是表空间填满----日志不会填满。检查的最好方式就是:show table status;你可以用任何InnoDB表来监视InnoDB表的剩余空间。 21.QPS每秒Query量 QPS = Questions(or Queries) / seconds mysql > show /* global */ status like 'Question'; 22.TPS(每秒事务量) TPS = (Com_commit + Com_rollback) / seconds mysql > show status like 'Com_commit'; mysql > show status like 'Com_rollback'; 23.key Buffer 命中率 key_buffer_read_hits = (1-key_reads / key_read_requests) * 100% key_buffer_write_hits = (1-key_writes / key_write_requests) * 100% mysql> show status like 'Key%'; 24.InnoDB Buffer命中率 Innodb_buffer_read_hits = (1 - innodb_buffer_pool_reads / innodb_buffer_pool_read_requests) * 100% mysql> show status like 'innodb_buffer_pool_read%'; 25.Query Cache命中率 Query_cache_hits = (Qcahce_hits / (Qcache_hits + Qcache_inserts )) * 100%; mysql> show status like 'Qcache%'; 26.Table Cache状态量 mysql> show status like 'open%'; 27.Thread Cache 命中率 Thread_cache_hits = (1 - Threads_created / connections ) * 100% mysql> show status like 'Thread%'; mysql> show status like 'Connections'; 28.锁定状态 mysql> show status like '%lock%'; 29.复制延时量 mysql > show slave status 30.Tmp Table状况(临时表状况) mysql > show status like 'Create_tmp%'; 31.Binlog Cache使用状况 mysql > show status like 'Binlog_cache%'; 32.Innodb_log_waits量 mysql > show status like 'innodb_log_waits';
相关推荐
MySQL性能调优与架构设计MySQL性能调优与架构设计MySQL性能调优与架构设计MySQL性能调优与架构设计MySQL性能调优与架构设计MySQL性能调优与架构设计MySQL性能调优与架构设计MySQL性能调优与架构设计
"MySQL性能调优与架构设计.pdf" 本资源摘要信息是关于 MySQL 数据库软件的性能调优和架构设计的知识点。MySQL 是一个流行的开源数据库管理系统,具有简单高效可靠的特点,广泛应用于各个行业。以下是从给定的文件中...
MySQL性能调优与架构设计 PDF图书MySQL性能调优与架构设计 PDF图书
### MySQL性能调优与架构设计的关键知识点 #### 一、MySQL概述 - **MySQL Server简介** - **定义**: MySQL是由MySQL AB公司(现已被Oracle收购)开发的一款开放源代码的关系型数据库管理系统(RDBMS)。 - **特点*...
本书以 MySQL 数据库的基础及维护为切入点,重点介绍了 MySQL 数据库应用系统的性能调优,以及高可用可扩展的架构设计。 全书共分3篇,基础篇介绍了MySQL软件的基础知识、架构组成、存储引擎、安全管理及基本的备份...
MySQL性能调优与架构设计是IT领域中一个关键的话题,特别是在大数据时代,高效稳定的数据库管理是企业业务的基础。本文将深入探讨如何优化MySQL的性能,以及如何设计高可用的数据库架构,以实现低成本且高性能的...
### MySQL性能调优与架构设计的关键知识点 #### 一、MySQL概述 - **定义与特点**:MySQL是一款由MySQL AB公司开发(后被Sun Microsystems收购)的开源数据库管理系统,以其简单高效、可靠性强等特点著称。它是一款...
MySQL性能调优参数 MySQL 是一个广泛使用的开源关系型数据库管理系统,在实际应用中,如何提高 MySQL 的性能是一个关键的问题。本文将总结 MySQL 性能调优参数,涵盖 Innodb 相关参数、连接参数、缓存参数、日志...
在《MySQL性能调优与架构设计》一书中,附录部分提供了一个名为“example”的数据库创建脚本。这个脚本是用于演示和学习如何构建一个简单的数据库结构,它包含了几个核心表,如event、group_message、group_message_...
《MySQL性能调优与架构设计》是一本由简朝阳编著的专业书籍,专注于探讨如何提升MySQL数据库系统的性能并进行高效架构设计。这本书是扫描版,可能包含图像化的文本,适合电子阅读。 MySQL作为世界上最受欢迎的开源...
《MySQL性能调优与架构设计》是简朝阳的一本专著,主要针对数据库管理员、开发人员和系统架构师,深入探讨了如何优化MySQL数据库的性能并进行合理的架构设计。书中涵盖了多个关键领域,旨在帮助读者提升数据库系统的...
### MySQL性能调优工具介绍与应用 MySQL作为全球最广泛使用的开源关系型数据库之一,在企业级应用中的地位不可动摇。为了确保MySQL能够高效稳定地运行,掌握一系列性能调优工具至关重要。本文将详细介绍多种MySQL...
本书“MySQL性能调优与架构设计高清全册”深入探讨了如何优化MySQL的性能并设计高效的数据架构,以满足大规模应用的需求。以下是对该书内容的详细解读: 1. **SQL基础与优化**:书中首先会讲解SQL语言的基本概念,...
### MySQL性能调优与架构设计 #### 一、MySQL Server简介 ##### 1.1 什么是MySQL MySQL是由MySQL AB公司(后来被Sun Microsystems收购,随后Sun又被Oracle收购)自主研发的一款开源数据库管理系统。它是一款支持...
MySQL是世界上最受欢迎的...本全册将详细讲解以上知识点,并通过实例演示如何在实际应用中实施这些策略,帮助读者成为MySQL性能调优与架构设计的专家。无论你是初学者还是有经验的DBA,都能从中获得宝贵的知识和经验。
MySQL性能调优是一个复杂而重要的任务,涉及到多个层面,包括SQL查询优化、索引管理、存储引擎选择、架构设计等。下面将详细讲解这些关键点。 首先,SQL查询优化是性能提升的基础。优化SQL语句可以减少数据库的计算...
《MySQL性能调优与架构设计》是简朝阳先生的一部深度解析MySQL数据库性能优化与架构构建的专业著作。这本书深入探讨了MySQL在实际应用中的各种性能问题,并提供了有效的解决策略,同时对MySQL的架构设计进行了全面的...
MySQL性能调优与架构设计是数据库管理领域中的一个重要主题,主要关注如何提升MySQL数据库的运行效率,优化查询性能,以及构建高效稳定的数据架构。简朝阳的这本书提供了详细的指南,包括了理论知识和实践技巧,旨在...