mysql – 如何识别具有数百万条目的表

在使用apache和mysql的debian服务器上,如何查看是否有任何一个表被垃圾邮件?

我在不同客户的服务器上有很多不同的博客,wordpress,wiki,…

似乎有些PHP应用程序不能防止垃圾邮件,因此一些表变得非常大并且使整个服务器变慢.

我需要一个监视所有表的脚本.或者,如果出现奇怪的事情,我可以安装一个简单的工具来获取报告吗?

解决方法:

由于您要检查的表是MyISAM,因此您只能使用一个查询.对于使用MyISAM的任何给定表或表,这是该查询:

SET @SecondsAgo = 60;
SELECT
    table_schema,table_name,
    data_length MYDSize,index_length MYISize,
    table_rows,update_time
FROM information_schema.tables
WHERE engine='MyISAM'
    AND table_schema NOT IN ('information_schema','performance_schema','mysql')
    AND update_time > (NOW() - INTERVAL @SecondsAgo SECOND)
ORDER BY update_time DESC;

对于每个MyISAM表,您将获得以下内容:

>表名和数据库
> .MYD大小
> .MYI大小
>表中的行数
>上次表格更新

您可以设置@SecondsAgo以选择扫描更改的粒度.

如果此查询中出现了许多表或同一组表,您将看到哪些表正在经历最频繁的写入和最大的增长.

我将把它留给你,以确定结果的怪异.

上一篇:linux – 监视程序调用可执行文件


下一篇:slack 团队协作平台