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  伺服器工作了多少秒

时间: 2024-09-28 18:01:11

MySQL中SHOW STATUS查看运行状况的相关文章

MySQL查看目前运行状况的两种方法_Mysql

第一种方法:利用mysql命令查看 MySQL 内建直接看 status 就可以看到系统常见讯息, 如下述范例: 复制代码 代码如下: 1.$ mysql -u root -p 2.mysql> s "Threads: 2 Questions: 224857636 Slow queries: 229 Opens: 1740 Flush tables: 1 Open tables: 735 Queries per second avg: 137.566 $ mysql -u root -p

MySQL中对于索引的基本增删查改操作总结_Mysql

创建索引 MySQL创建索引的语法如下: CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [USING index_type] ON table_name (index_col_name,...) 其中对应的语法变量信息如下: [UNIQUE|FULLTEXT|SPATIAL] 中括号中的这三个关键字表示创建的索引类型,它们分别表示唯一索引.全文索引.空间索引三种不同的索引类型.如果我们不指定任何关键字,则默认为普通索引. index_name

MySQL查看目前运行状况

利用mysql命令查看 MySQL 内建直接看 status 就可以看到系统常见讯息, 如下述范例:  代码如下 复制代码 1.$ mysql -u root -p 2.mysql> s "Threads: 2  Questions: 224857636  Slow queries: 229  Opens: 1740  Flush tables: 1  Open tables: 735  Queries per second avg: 137.566 $ mysql -u root -p

MySQL查看目前运行状况的两种方法

第一种方法:利用mysql命令查看 MySQL 内建直接看 status 就可以看到系统常见讯息, 如下述范例: 1.$ mysql -u root -p 2.mysql> s "Threads: 2 Questions: 224857636 Slow queries: 229 Opens: 1740 Flush tables: 1 Open tables: 735 Queries per second avg: 137.566 $ mysql -u root -p -e "st

你真的了解 MySQL 数据库的运行状况吗?

2015年第三方市场调查机构 Evans 数据公司最近公布的一系列客户调查数据显示,在过去两年里,MySQL 在所有开发者使用的数据库中获得了25%的市场份额,Evans 公司的本次调查显示,数据库的使用者中有40%是开发人员,而两年前这一数据是32%. 此外 MySQL 越来越被企业级所接受,如今数据日益膨胀,应用越来越广泛,随之而来的 MySQL 性能分析,监控告警,集成可视化的讨论也越来越多了,还有利用各种工具对 MySQL 各指标数据进行分析的文章也曾出不穷,今天本文就几个需要注意的重点

mysql优化之show status查看MySQL服务器状态信息

在LAMP架构的网站开发过程中,有些时候我们需要了解MySQL的服务器状态信息,譬如当前MySQL启动后的运行时间,当前MySQL的客户端会话连接数,当前MySQL服务器执行的慢查询数,当前MySQL执行了多少SELECT语句.执行了多少UPDATE/DELETE/INSERT语句等统计信息,从而便于我们根据当前MySQL服务器的运行状态进行对应的调整或优化工作. 在MySQL中,我们可以使用SHOW STATUS指令语句来查看MySQL服务器的状态信息.下面,我们以DOS命令窗口的形式连接My

mysql中如何查看和删除唯一索引

  mysql中如何查看和删除唯一索引. 查看唯一索引: show index from mytable;//mytable 是表名 查询结果如下: 查询到唯一索引后,如何删除唯一索引呢,使用如下命令: alter table mytable drop index mdl_tag_use_ix;//mdl_tag_use_ix是上表查出的索引名,key_name

Mysql中 show table status 获取表信息的方法_Mysql

使用方法 mysql>show table status; mysql>show table status like 'esf_seller_history'\G; mysql>show table status like 'esf_%'\G; 样例: mysql>show table status like 'esf_seller_history'\G; 1.Name 表名称 2.Engine: 表的存储引擎 3.Version: 版本 4.Row_format 行格式.对于My

mysql中查看数据库中所有表的记录数

如果使用mysql的版本在5.0及以上,可以通过查询information_schema库中的tables表来获取,该表中使用table_rows记录表的行数信息.例如查看库testdb中所有表的记录数:  代码如下 复制代码 use information_schema; select table_name,table_rows from tables where TABLE_SCHEMA = 'testdb' order by table_rows desc; 不过需要注意的是,对于Inno