加入收藏 | 设为首页 | 会员中心 | 我要投稿 甘孜站长网 (https://www.0836zz.com.cn/)- 运维、物联设备、数据计算、智能推荐、云管理!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL中SHOW STATUS查看运行状况

发布时间:2022-07-04 10:34:52 所属栏目:MySql教程 来源:互联网
导读:在mysql中SHOW STATUS是我们最好的朋友,它可以快速的查看运行状况一些情况,让我们及时对数据库进行优化操作,下面我总结了一些用法. 直接在命令行下登陆MySQL运行SHOW STATUS; 1,查看MySQL服务器配置信息,代码如下: mysql show variables; 2,查看MySQL服务器
  在mysql中SHOW STATUS是我们最好的朋友,它可以快速的查看运行状况一些情况,让我们及时对数据库进行优化操作,下面我总结了一些用法.
 
  直接在命令行下登陆MySQL运行SHOW STATUS;
 
  1,查看MySQL服务器配置信息,代码如下:
 
  mysql> show variables;
 
  2,查看MySQL服务器运行的各种状态值,代码如下:
 
  mysql> show global status;
 
  3,慢查询,代码如下:
 
  mysql> show variables like '%slow%';
  +------------------+-------+
  | Variable_name    | Value |
  +------------------+-------+
  | log_slow_queries | OFF   |
  | slow_launch_time | 2     |
  +------------------+-------+
  mysql> show global status like '%slow%';
  +---------------------+-------+
  | Variable_name       | Value |
  +---------------------+-------+
  | Slow_launch_threads | 0     |
  | Slow_queries        | 279   |
  +---------------------+-------+
  配置中关闭了记录慢查询,最好是打开,方便优化,超过2秒即为慢查询,一共有279条慢查询,代码如下:
 
  SHOW VARIABLES
 
  SHOW VARIABLES是查看MySQL的配置参数,还可以使用类似SHOW VARIABLES LIKE ‘Key%’,代码如下:
 
  SHOW PROCESSLIST
 
  SHOW PROCESSLIST是查看当前正在进行的进程,对于有锁表等情况的排查很有用处,一般情况下,打开MySQL的慢查询,记录同样有利于排查,代码如下:
 
  SHOW OPEN TABLES
 
  SHOW OPEN TABLES是显示当前已经被打开的表列表。
 
  mysqladmin status
 
  使用MySQL自带的mysqladmin 工具查看status,使用以下命令:
 
  mysqladmin -uroot –password=’password’ status
 
  显示的结果如下:
 
  Uptime: 87117 Threads: 1 Questions: 5481626 Slow queries:16 Opens: 2211 Flush tables: 1 Open tables:512 Queries per second avg:62.923
 
  另外可以添加 -i 5 参数,让其每五秒自动刷新之,代码如下:
 
  mysqladmin -uroot –password=’password’ status -i 5
   
  mysqladmin extended-status
  同样的可以使用mysqladmin -uroot –password=’password’extended-status来查看更多的MySQL运行信息,这种方式和第一种查看的信息基本一样.
 
  分享一些名词说明
 
  query_cache_limit:超过此大小的查询将不缓存
 
  query_cache_min_res_unit:缓存块的最小大小
 
  query_cache_size:查询缓存大小
 
  query_cache_type:缓存类型,决定缓存什么样的查询,示例中表示不缓存 select sql_no_cache 查询.
 
  query_cache_wlock_invalidate:当有其他客户端正在对MyISAM表进行写操作时,如果查询在query cache中,是否返回cache结果还是等写操作完成再读表获取结果。
 
  query_cache_min_res_unit的配置是一柄”双刃剑”,默认是4KB,设置值大对大数据查询有好处,但如果你的查询都是小数据查询,就容易造成内存碎片和浪费。
 
  查询缓存碎片率 = Qcache_free_blocks / Qcache_total_blocks * 100%,如果查询缓存碎片率超过20%,可以用FLUSH QUERY CACHE整理缓存碎片,或者试试减小query_cache_min_res_unit,如果你的查询都是小数据量的话。
 
  查询缓存利用率 = (query_cache_size – Qcache_free_memory) / query_cache_size * 100%,查询缓存利用率在25%以下的话说明query_cache_size设置的过大,可适当减小;查询缓存利用率在80%以上而且Qcache_lowmem_prunes > 50的话说明query_cache_size可能有点小,要不就是碎片太多。
 
  查询缓存命中率 = (Qcache_hits – Qcache_inserts) / Qcache_hits * 100%
 
  示例服务器 查询缓存碎片率 = 20.46%,查询缓存利用率 = 62.26%,查询缓存命中率 = 1.94%,命中率很差,可能写操作比较频繁吧,而且可能有些碎片.
 
  一些解释
 
  Aborted_clients  由于客户没有正确关闭连接已经死掉,已经放弃的连接数量。
 
  Aborted_connects  尝试已经失败的MySQL伺服器的连接的次数。
 
  Connections  试图连接MySQL伺服器的次数。
 
  Created_tmp_tables  当执行语句时,已经被创造了的隐含临时表的数量。
 
  Delayed_insert_threads  正在使用的延迟插入处理器执行绪的数量。
 
  Delayed_writes  用INSERT DELAYED写入的行数。
 
  Delayed_errors  用INSERT DELAYED写入的发生某些错误(可能重?键值)的行数。
 
  Flush_commands  执行FLUSH命令的次数。
 
  Handler_delete  请求从一张表中删除行的次数。
 
  Handler_read_first  请求读入表中第一行的次数。
 
  Handler_read_key  请求数字基于键读行。
 
  Handler_read_next  请求读入基于一个键的一行的次数。
 
  Handler_read_rnd  请求读入基于一个固定位置的一行的次数。
 
  Handler_update  请求更新表中一行的次数。
 
  Handler_write  请求向表中插入一行的次数。
 
  Key_blocks_used  用于关键字缓存的块的数量。
 
  Key_read_requests  请求从缓存读入一个键值的次数。
 
  Key_reads  从磁碟物理读入一个键值的次数。
 
  Key_write_requests  请求将一个关键字块写入缓存次数。
 
  Key_writes  将一个键值块物理写入磁碟的次数。
 
  Max_used_connections  同时使用的连接的最大数目。
 
  Not_flushed_key_blocks  在键缓存中已经改变但是还没被清空到磁碟上的键块。
 
  Not_flushed_delayed_rows  在INSERT DELAY队列中等待写入的行的数量。
 
  Open_tables  打开表的数量。
 
  Open_files  打开文件的数量。
 
  Open_streams  打开流的数量(主要用于日志记载)
 
  Opened_tables  已经打开的表的数量。
 
  Questions  发往伺服器的查询的数量。
 
  Slow_queries  要花超过long_query_time时间的查询数量。
 
  Threads_connected  当前打开的连接的数量。
 
  Threads_running  不在睡眠的执行绪数量。
 
  Uptime  伺服器工作了多少秒

(编辑:甘孜站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读