获取 mysql 响应结果的计数,如“SHOW OPEN TABLES”

问题描述 投票:0回答:1

在刷新系统上的临时表之前,我希望检查数据库上是否正在运行任何锁定的查询,同样我也收到了查询

SHOW OPEN TABLES WHERE In_use > 0;

但是这会产生一个表格,我无法在内部获取表格大小的计数,

我尝试了如下查询

select count(*) from (SHOW OPEN TABLES where In_use > 0) a;

但这并没有帮助我,让我知道如何实现这一目标

我希望获取系统信息的结果数据并检查是否有任何真实的事务发生或锁正在运行。

mysql mysqli
1个回答
0
投票

检查具有正在使用的连接的打开表:

SHOW OPEN TABLES WHERE In_use > 0;

要获取具有正在使用的连接的打开表的计数:

SELECT COUNT(TABLE_NAME) FROM INFORMATION_SCHEMA.TABLES WHERE In_use > 0;

如果您想获取活跃交易的数量:

SELECT COUNT(*) AS active_transactions FROM INFORMATION_SCHEMA.INNODB_TRX;

检查锁定的表:

SHOW OPEN TABLES WHERE In_lock > 0;

获取锁定表的数量:

SELECT COUNT(*) AS locked_tables FROM INFORMATION_SCHEMA.INNODB_LOCKS;

© www.soinside.com 2019 - 2024. All rights reserved.