mysql进程状态怎么看 mysql查看进程占用连接数

查看mysql运行状态的命令是什么?一、用phpMyAdmin进行查看
二、用命令行的SHOW 语句
直接在命令行下登陆MySQL运行SHOW STATUS;查询语句
同样的语句还有SHOW VARIABLES;,SHOW STATUS是查看MySQL运行情况,和上面那种通过pma查看到的信息基本类似 。
SHOW VARIABLES
SHOW VARIABLES是查看MySQL的配置参数,还可以使用类似SHOW VARIABLES LIKE ‘Key%’
SHOW PROCESSLIST
SHOW PROCESSLIST是查看当前正在进行的进程,对于有锁表等情况的排查很有用处 。一般情况下,打开MySQL的慢查询记录同样有利于排查 。
SHOW OPEN TABLES
SHOW OPEN TABLES是显示当前已经被打开的表列表 。
三、用MySQL自带工具mysqladmin 查看
使用MySQL自带的mysqladmin 工具查看status,使用以下命令
mysqladmin -uroot -p密码 status
显示的结果如下:
Uptime: 502963Threads: 2Questions: 8561820Slow queries: 734681Opens: 553
45Flush tables: 1Open tables: 85Queries per second avg: 17.023
另外可以添加 -i 5 参数,让其每五秒自动刷新之 。
mysqladmin -uroot -p密码 status -i 5
mysqladmin extended-status
同样的可以使用mysqladmin -uroot -p密码 extended-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 -e "status" # s = status,
用这个也会列出上述结果.
如何查看mysql执行进度有时候我们会不小心对一个大表进行了 update,比如说写错了 where 条件......
此时,如果 kill 掉 update 线程,那回滚 undo log 需要不少时间 。如果放置不管,也不知道 update 会持续多久 。
那我们能知道 update 的进度么?
实验
【mysql进程状态怎么看 mysql查看进程占用连接数】我们先创建一个测试数据库:
快速创建一些数据:
连续执行同样的 SQL 数次,就可以快速构造千万级别的数据:
查看一下总的行数:
我们来释放一个大的 update:
然后另起一个 session,观察 performance_schema 中的信息:
可以看到,performance_schema 会列出当前 SQL 从引擎获取的行数 。
等 SQL 结束后,我们看一下 update 从引擎总共获取了多少行:
可以看到该 update 从引擎总共获取的行数是表大小的两倍 , 那我们可以估算:update 的进度 = (rows_examined) / (2 * 表行数)
??小贴士
information_schema.tables 中,提供了对表行数的估算 , 比起使用 select count(1) 的成本低很多,几乎可以忽略不计 。
那么是不是所有的 update,从引擎中获取的行数都会是表大小的两倍呢?这个还是要分情况讨论的,上面的 SQL 更新了主键 , 如果只更新内容而不更新主键呢?我们来试验一下:
等待 update 结束,查看 row_examined,发现其刚好是表大?。?
那我们怎么准确的这个倍数呢?
一种方法是靠经验:update 语句的 where 中会扫描多少行,是否修改主键,是否修改唯一键,以这些条件来估算系数 。
另一种方法就是在同样结构的较小的表上试验一下,获取倍数 。
这样,我们就能准确估算一个“不小心”执行的大型 update 的进度了 。
关于mysql进程状态怎么看和mysql查看进程占用连接数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读