Выбор меньшего количества столбцов ускоряет мой запрос? - PullRequest
0 голосов
/ 05 февраля 2020

Я видел несколько вопросов, сравнивающих select * для явного выбора по всем столбцам, но как насчет меньшего числа выбранных столбцов и большего числа?

Другими словами:

SELECT id,firstname,lastname,lastlogin,email,phone

Больше, чем пренебрежимо быстрее, чем:

SELECT id,firstname,lastlogin

Я понимаю, что будут небольшие различия для передачи большего количества данных через систему и в приложение, но это общая разница данных / загрузки, а не стоимость запроса ( я думаю, что большие данные в ячейках будут иметь тот же эффект) - я только пытаюсь оптимизировать свой запрос, так как в любом случае мне придется загружать ВСЕ данные в какой-то момент ...

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

1 Ответ

0 голосов
/ 05 февраля 2020

В большинстве случаев единственной разницей будет немного больше данных для этих полей и дополнительное время для их извлечения.

Необходимо учитывать две вещи:

  1. Если дополнительные поля очень большие, то это может быть большая разница в производительности.
  2. Если существует индекс, который охватывает столбцы, которые вы на самом деле хотите, то индекс можно использовать для запрос. Это может ускорить запрос в базе данных.

В общем, советуем возвращать нужные столбцы в приложение. Если есть сложная обработка, вы должны рассмотреть возможность сделать это в базе данных, а не в приложении.

...