AWS RDS, восстановленный из снимка, очень медленный с составным индексом - PullRequest
0 голосов
/ 26 апреля 2019

Итак, у меня есть 2 таблицы, каждая из которых имеет размер 25 ГБ.

Таблица t1 имеет индекс для одного столбца, а t2 - составной индекс.
Все мои запросы - это простые запросы с использованием индекса.

Мой стол t2

CREATE TABLE `t2` (
  `uid` bigint(20) DEFAULT NULL,
  `time` bigint(20) DEFAULT NULL,
  `content` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
  KEY `composite` (`uid`,`time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 |

мой запрос

explain select * from t2 where uid between 1 and 10000 and time between 11 and 10000000;

результат объяснения:

+----+-------------+-------+------------+-------+---------------+-----------+---------+------+------+----------+-----------------------+
| id | select_type | table | partitions | type  | possible_keys | key       | key_len | ref  | rows | filtered | Extra                 |
+----+-------------+-------+------------+-------+---------------+-----------+---------+------+------+----------+-----------------------+
|  1 | SIMPLE      | q3    | NULL       | range | composite     | composite | 18      | NULL | 2548 |    11.11 | Using index condition |
+----+-------------+-------+------------+-------+---------------+-----------+---------+------+------+----------+-----------------------+
1 row in set, 1 warning (0.19 sec)

Странная вещь, которую я заметил, заключается в том, что когда я восстанавливаю базу данных из моментального снимка, t2 станет очень медленным с задержкой 3000, но t1 станет нормальным (с задержкой 100) примерно через 5 минут.

Я понимаю, что снимок хранится в s3. Но почему t1 работает нормально, а t2 супер медленный?

ОБНОВЛЕНИЕ: я проверил вручную и обнаружил, что составной индекс есть. Я подозреваю, что мой составной индекс для t2 даже не работает.

И я не думаю, что это проблема буфера памяти, иначе t2 должен стать нормальным после 5-минутного интенсивного теста с запросами.

...