#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 вернёт вам случайную запись
Комментариев нет:
Отправить комментарий