Почему иногда простой MySQL запрос выполняется медленно?

Есть таблица (примерно 40 млн. строк):
CREATE TABLE `related_articles` (
  `articleID` int(32) DEFAULT NULL,
  `relatedArticleID` int(32) DEFAULT NULL,
  KEY `IX_ArticleID` (`articleID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8


И есть запрос:
SELECT relatedArticleID FROM related_articles WHERE articleID = 252381;


Explain:
+----+-------------+------------------+------+---------------+--------------+---------+-------+------+-------------+
| id | select_type | table            | type | possible_keys | key          | key_len | ref   | rows | Extra       |
+----+-------------+------------------+------+---------------+--------------+---------+-------+------+-------------+
|  1 | SIMPLE      | related_articles | ref  | IX_ArticleID  | IX_ArticleID | 5       | const |   10 | Using where |
+----+-------------+------------------+------+---------------+--------------+---------+-------+------+-------------+


Обычно подобные запросы отрабатывают мгновенно. Но иногда в логах они проскакивают со временем в 1-2 секунды.
С чем это может быть связано?

UPDATE: в таблицу периодически вставляются новые данные. Может быть с этим как то связано? Подобная проблема наблюдается и с другими таблицами.

UPDATE: SHOW INDEX FROM related_articles:
+------------------+------------+--------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table            | Non_unique | Key_name     | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+------------------+------------+--------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| related_articles |          1 | IX_ArticleID |            1 | articleID   | A         |    10252773 |     NULL | NULL   | YES  | BTREE      |         |               |
+------------------+------------+--------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
  • Вопрос задан
  • 378 просмотров
Пригласить эксперта
Ответы на вопрос 1
@k0nsu1
Вам необходимо сделать индекс на поле articleID
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы