Как уменьшить время выбора select * from table_name для таблицы с 200k + записями? - PullRequest
0 голосов
/ 27 мая 2019

У меня установлена ​​таблица mysql в RDS, и я запрашиваю из своего веб-приложения. Сам запрос занимает более 20 секунд, в то время как другие настраиваемые операции в совокупности занимают менее 0,5 секунды. Есть ли способ сократить время выполнения запроса до 2-3 секунд?

Я пытался индексировать, но это тоже не помогает.

$table_data = select * from table_name

Я ожидаю, что выполнение вышеупомянутого запроса займет как можно меньше времени.

1 Ответ

4 голосов
/ 27 мая 2019

Вот в чем дело:

  • Ваш запрос не имеет предикатов фильтрации (без условия WHERE).Затем вы выбираете все строки таблицы.
  • Ваш запрос содержит * вместо подмножества столбцов.Поэтому он выбирает все столбцы таблицы.

В сумме вы получаете всю таблицу каждый раз.

Ничего не поделаешьсторона SQL.Ваши шансы теперь находятся на стороне администратора базы данных.Получите больше оборудования (более быстрый процессор), увеличьте паралеллизм (больше ядер), возможно более быстрый SSD?

В качестве альтернативы, вы можете использовать кэширование на стороне своего приложения.Запускайте запрос только один раз каждые 5 минут и сохраняйте строки в памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...