Как лучше - оптимизация запросов

ParadoCS
Дата: 18.12.2012 12:15:08
Здравствуйте! Мы с другом Пашей поспорили по поводу оптимизации запросов.

Я считаю что при всех запросах будет лучше и быстрее выполняться следующий запрос:

SELECT `UID`, `USER`, `DATE` FROM `USERS`

Т.е. при обозначение ячеек и таблиц использованы ` и не использована * для выборки.

Т.е. менее оптимизированными запросами я считаю следующие:

SELECT * FROM USERS
SELECT UID, USER, DATE FROM USERS

Как вы считаете как лучше? Желательно привести в пример какие-то аргументы, подобные тесты в интернете я не нашел. И хотел бы разобраться с данным вопросом.
netwind
Дата: 18.12.2012 12:25:32
ParadoCS

Т.е. при обозначение ячеек и таблиц использованы ` и не использована * для выборки.

Друга Пашу, видимо, беспокоят ваши запросы созданные ide, конструктором или crud-ом. Действительно, выглядит странно и нечитаемо.
Разница в синтаксисе - копейки, в сравнении с разницей от плана выборки. Это единственное, на что следует обращать внимание.


SELECT * FROM USERS
SELECT UID, USER, DATE FROM USERS

а вот наличие звездочки уже может дать неоднозначные эффекты. В общем случае, звездочка медленнее.

В частных случаях расширяемых CMS, расширению удобно иметь выбраненными все поля сущности, в том числе нестандартные, которые это расширение добавило в таблицу.
Добрый Э - Эх
Дата: 18.12.2012 12:27:02
` и * - взаимно перпендикулярные понятия. Это всё равно, что мягкое и теплое.
Одно задаёт нотацию имен объектов, второе - список доступных колонок таблицы в запросе.
Если в таблице три поля - `UID`, `USER`, `DATE`, то по барабану как их указывать - перечислением или через мохнатую точку.
В целом же, в селект листе желательно писать только нужные поля, избегая лишнего.