MySQL 查找经常使用的表
时间: 2024-03-06 13:46:45 浏览: 12
在MySQL中,可以使用以下方法查找经常使用的表:
1. 查看表的I/O操作次数:可以使用MySQL的Performance Schema来查看表的I/O操作次数,具体步骤如下:
1)打开Performance Schema:在MySQL中执行`SET GLOBAL performance_schema = ON;`
2)执行以下语句,查看表的I/O操作次数:
```
SELECT
(SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'your_database_name' AND TABLE_ID = t.TABLE_ID) table_name,
sum(t.COUNT_READ) count_read,
sum(t.COUNT_WRITE) count_write
FROM
performance_schema.table_io_waits_summary_by_table t
WHERE
t.TABLE_SCHEMA = 'your_database_name'
GROUP BY
t.TABLE_ID
ORDER BY
sum(t.COUNT_READ + t.COUNT_WRITE) DESC
LIMIT 10;
```
其中,将`your_database_name`替换为你要查询的数据库名。执行以上语句后,输出结果中的前几行即为经常使用的表。
2. 查看表的锁等待次数:可以使用MySQL的Performance Schema来查看表的锁等待次数,具体步骤如下:
1)打开Performance Schema:在MySQL中执行`SET GLOBAL performance_schema = ON;`
2)执行以下语句,查看表的锁等待次数:
```
SELECT
(SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'your_database_name' AND TABLE_ID = t.TABLE_ID) table_name,
sum(t.COUNT_READ_NORMAL + t.COUNT_READ_WITH_SHARED_LOCKS + t.COUNT_READ_HIGH_PRIORITY + t.COUNT_READ_NO_INSERT +
t.COUNT_WRITE_ALLOW_WRITE + t.COUNT_WRITE_CONCURRENT_INSERT + t.COUNT_WRITE_DELAYED + t.COUNT_WRITE_NORMAL) count_lock
FROM
performance_schema.table_lock_waits_summary_by_table t
WHERE
t.TABLE_SCHEMA = 'your_database_name'
GROUP BY
t.TABLE_ID
ORDER BY
sum(t.COUNT_READ_NORMAL + t.COUNT_READ_WITH_SHARED_LOCKS + t.COUNT_READ_HIGH_PRIORITY + t.COUNT_READ_NO_INSERT +
t.COUNT_WRITE_ALLOW_WRITE + t.COUNT_WRITE_CONCURRENT_INSERT + t.COUNT_WRITE_DELAYED + t.COUNT_WRITE_NORMAL) DESC
LIMIT 10;
```
其中,将`your_database_name`替换为你要查询的数据库名。执行以上语句后,输出结果中的前几行即为经常使用的表。
通过以上两种方法,可以查找经常使用的表并优化这些表的性能,提高MySQL的查询性能。