Страницы

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

воскресенье, 29 декабря 2019 г.

Как будет правильнее написать SQL запрос, использовать * или перечислить поля?

#sql


Как будет правильнее написать

SELECT * FROM users LIMIT 1;


или же

SELECT id,user,pass FROM users LIMIT 1; (если в таблице всего 3 структуры)


И если в базе всегда одна запись, есть ли смысл писать в конце запроса limit?
    


Ответы

Ответ 1



Обычно рекомендуют выбирать поля явно. Потому что * транслируется в дополнительное обращение к системной таблице для получения списка колонок запрошенных таблиц. Кроме того, явное указание порядка колонок позволяет оптимизировать доступ к результатам выполнения запроса. Ограничение выборки следует применять в сочетании с сортировкой.

Ответ 2



Как сказал уважаемый @msi - без разницы. Но теоретически, как мне кажется, быстрее будет с астериском, нежели со всеми полями - в первом случае база выдаст "не думая" всю строку, а во втором случае будет делать SELECT с фильтрацией по полям. В любом случае, наверняка, внутренний оптимизатор СУБД приведет все к одному виду. И если в таблице строка только одна, то LIMIT 1 излишен.

Ответ 3



пишите * если вам нужны все или большинство полей. SELECT * FROM users LIMIT 1 вернёт вам случайную запись

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

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