MySQL查询随时间变慢问题排查求助
数据库查询随时间变慢的原因排查
基础信息
表结构
CREATE TABLE `servers` ( `ipport` varchar(255) NOT NULL, `ip` varchar(255) NOT NULL, `port` int(11) NOT NULL, `ip_as_int` int(10) unsigned NOT NULL, `version` text NOT NULL, `protocol` int(11) NOT NULL, `online_count` int(11) NOT NULL, `max_count` int(11) NOT NULL, `description` text NOT NULL, `favicon` text DEFAULT NULL, `last_seen` int(11) NOT NULL, `cracked` tinyint(1) DEFAULT NULL, `joined_on` timestamp NULL DEFAULT NULL, PRIMARY KEY (`ipport`), KEY `ip_as_int_idx` (`ip_as_int`), KEY `last_seen_idx` (`last_seen`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci
数据更新情况
- 表内约有90万条记录,其中60万条每5分钟通过
REPLACE INTO语句执行更新操作。
服务器配置
- 内存:8GB
- vCPU:6核
- 交换内存:8GB
异常现象
- 执行
systemctl restart mariadb重启MariaDB后,查询耗时约3秒; - 随着时间推移,查询速度逐步变慢,近期甚至出现单次查询耗时2分钟的情况。
示例查询语句
SELECT /*+ MAX_EXECUTION_TIME(120000) */ * FROM servers AS s WHERE (protocol = 762) AND (s.last_seen > 1687177923) ORDER BY RAND() LIMIT 100;
问题
我想了解导致查询随时间逐渐变慢的原因。
内容的提问来源于stack exchange,提问作者Damian
相关产品推荐
相关产品推荐

