在 Debian 上 MySQL 变慢,通常不是单一原因,而是系统、配置、查询、资源几方面叠加。下面按最常见原因 → 排查方法 → 解决建议给你梳理。
Debian 默认 MySQL 配置非常保守:
innodb_buffer_pool_size 很小表现:并发一高就卡,简单查询也慢。
✅ 解决:
[mysqld]
innodb_buffer_pool_size = 1G # 物理内存的 50%~70%
max_connections = 200
重启:
systemctl restart mysql
Debian + 云盘(尤其是低配云主机):
表现:
iostat 中 %util 很高✅ 排查:
iostat -x 1
✅ 解决:
sync_binlog=1 的极端配置(视业务)很多“MySQL 慢”其实是 SQL 慢。
✅ 排查慢查询:
SHOW VARIABLES LIKE 'slow_query_log';
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 1;
✅ 分析 SQL:
EXPLAIN SELECT * FROM user WHERE name='tom';
常见原因:
LIKE '%xx%'SELECT *✅ 检查:
free -h
top
✅ 解决:
✅ 确认:
mysql -V
MySQL 默认会做反向 DNS 解析。
✅ 解决(强烈推荐):
[mysqld]
skip-name-resolve
# 1. 系统资源
top
free -h
iostat -x 1
# 2. MySQL 状态
mysqladmin status
SHOW PROCESSLIST;
# 3. 慢查询
SHOW VARIABLES LIKE 'slow%';
我可以更精准帮你:
你可以直接贴一段:
SHOW PROCESSLIST;EXPLAIN 结果my.cnf我可以直接帮你改配置。