Это мой запрос
SELECT
id
FROM
`MyTable`
WHERE
`env` = 'default'
AND (`HTML` = '' OR `HTML` IS NULL)
order by `id` desc
limit 100;
При выполнении объяснения я получу:
Possible keys: idx_env (related to env field in where clause)
Key: id
Key length: 4
Rows: 200
Filtered: 9.50
Extra: using where
Из приведенного выше объяснения я понимаю, что mySQL будет проверять 200 записей.И у меня не должно быть больших проблем с производительностью
Но я часто сталкиваюсь с медленным запросом в 50 ", фактически активируя медленный журнал запросов в моем кластере Aurora, я вижу следующий отчет:
# Query_time: 49.512712 Lock_time: 0.000065 Rows_sent: 28 Rows_examined: 6795665
Похоже, что нет последовательной обратной связи: из объясненных строк по 200 записей из всех журналов ...
РЕДАКТИРОВАТЬ
поля env и id уже заполненыИндексируется. HTML не индексируется намеренно, потому что это тип LONGTEXT
, также я хотел бы добавить, что иногда при выполнении запроса в рабочей среде он отвечает очень быстро, как и ожидалось, но часто для его выполнения требуется около 50 ".... и я немного смущен этим