Страницы

Поиск по вопросам

вторник, 21 мая 2019 г.

Есть ли разница при SELECT * или SELECT `some_column` в PHP

Интересует насколько это влияет на производительность запроса в PHP
все запросы я делаю просто SELECT * ... LIMIT 0,20 и он постоянно подтягивает значения всех столбцов (их примерно до 15), но использую из них я максимум 6-7.
У меня все время стоит лимит, а в базе строк больше > 10000 вот интересно это сильно влияет на скорость? а что если дальше продолжать еще делать JOIN'ы ?


Ответ

В большинстве случаев морочиться на эту тему не нужно. Вопрос про * в запросах - это такая trivia, которую нубы с придыханием рассказывают друг другу и которую можно прочитать в идиотских списках "25 способов ускорить свой скрипт в 100500 раз".
Если удобно писать * и в базе нет блобов с гигазами варезов, а есть 15 несчастных варчаров, то никто не умрет от звездочки.
Плюсы использования звездочки:
при добавлении полей в таблицу не надо менять код запроса запрос становится читабельнее и короче
Минусы использования звездочки:
большой потенциальный объем данных, передаваемых в пхп, может сказаться на производительности если в запросе используется временная таблица, то наличие ненужных полей может катастрофически отразиться на времени запроса, поскольку во временную таблицу будут записываться все поля таблицы. Разумеется, лучше избегать запросов, которым требуется создание временной таблицы.

Комментариев нет:

Отправить комментарий