Страницы

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

среда, 4 марта 2020 г.

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

#php #mysql #база_данных #select #производительность


Интересует насколько это влияет на производительность запроса в PHP

все запросы я делаю просто SELECT * ... LIMIT 0,20 и он постоянно подтягивает значения
всех столбцов (их примерно до 15), но использую из них я максимум 6-7.

У меня все время стоит лимит, а в базе строк больше > 10000 вот интересно это сильно
влияет на скорость? а что если дальше продолжать еще делать JOIN'ы ?
    


Ответы

Ответ 1



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

Ответ 2



использование * = "bad practice". минусы использование * : 1)если вы будете дальнейшей писать JOIN-i тогда у вас будет проблемы 2)если вы будете дальнейшей добавляет столбцы тогда они будет автоматический подключиться "без нужды" 3)лишние данные это зло 4)использование не дает вам прав наименование столбцов 5)может быть меньше но влияет на загрузку

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

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