linux – MySQL非常简单的SELECT查询速度极慢

前端之家收集整理的这篇文章主要介绍了linux – MySQL非常简单的SELECT查询速度极慢前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们有一个在虚拟机上运行的简单Web应用程序,它使用InnoDB引擎将其数据保存在 MySQL 5.5数据库中.一切都运作良好大约三年,但突然变得非常缓慢.

例如,我有一个非常简单的表保存地址:

CREATE TABLE `addresses` (
  `address_id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(64) CHARACTER SET latin1 NOT NULL,`firstname` varchar(64) CHARACTER SET latin1 NOT NULL,`street` varchar(64) CHARACTER SET latin1 NOT NULL,`housenumber` varchar(16) CHARACTER SET latin1 NOT NULL,`zip` varchar(5) CHARACTER SET latin1 NOT NULL,`city` varchar(64) CHARACTER SET latin1 NOT NULL,`email` varchar(64) CHARACTER SET latin1 NOT NULL,`phone` varchar(16) CHARACTER SET latin1 NOT NULL,`birthdate` date NOT NULL,PRIMARY KEY (`address_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin

此表包含大约800个条目,实际上并不多.但是运行查询

SELECT * FROM addresses

出于测试目的,它似乎永远不会完成.我使用服务器本身的MysqL CLI检查了这一点:它输出表的某些行,然后等待很长时间,直到它输出下一行.

所以也许这是数据发送阶段的问题,但我不确定.

VM有2GB的RAM,只使用320MB. cpu的运行速度也只有1到2%. mytop不会显示阻止服务器的任何其他查询. IT管​​理员表示他们没有在硬件方面做任何改变.

我已经尝试过重启数据库服务器,重启虚拟机等事情.什么都没有帮助.

编辑:

EXPLAIN SELECT * FROM addresses

给我这个结果:

+----+-------------+-----------+------+---------------+------+---------+------+------+-------+
| id | select_type | table     | type | possible_keys | key  | key_len | ref  | rows | Extra |
+----+-------------+-----------+------+---------------+------+---------+------+------+-------+
|  1 | SIMPLE      | addresses | ALL  | NULL          | NULL | NULL    | NULL |  793 |       |
+----+-------------+-----------+------+---------------+------+---------+------+------+-------+
1 row in set (0.00 sec)

解决方法

如果cpu负载较低,则表明缺少索引没有问题,如果是这种情况,查询只需要更多的cpu和磁盘访问.你也说它工作好3年了.

您是否检查了一般磁盘访问速度(特别是在数据库所在的分区上)?例如.使用dd like here.你所描述的听起来像死盘或半死的突袭.我希望得到备份吗?

原文链接:https://www.f2er.com/linux/401005.html

猜你在找的Linux相关文章