.* или перечисление параметров?

Духовность™

Продвинутый новичок
.* или перечисление параметров?

Как с точки зрения быстродействия правильно выбирать данные в таблице, как

select .* from ...

или

select t.v1, t.v2, t.v3 from ..

Данные таблицы - список объявлений и их параметров. Т.е. не такие уж и большие объемы данных.
 

Single

пилот капсулы
Выборка всех полей
SELECT * FROM table

При написании запросов не используйте выборку всех полей — "*". Перечислите только те поля, которые вам действительно нужны. Это сократит количество выбираемых и пересылаемых данных. Кроме этого, не забывайте про покрывающие индексы. Даже если вам на самом деле необходимы все поля в таблице, лучше их перечислить. Во-первых, это повышает читабельность кода. При использовании звездочки невозможно узнать какие поля есть в таблице без заглядывания в нее. Во-вторых, со временем количество столбцов в вашей таблице может изменяться, и если сегодня это пять INT столбцов, то через месяц могут добавиться TEXT и BLOB поля, которые будут замедлять выборку.
habr
 

LONGMAN

Dark Side of the Moon..
Да но есть и минусы. Если добавлять или удалять в таблице поля, то придётся в запросах тоже добавлять/удалять.. И хабре не написано какая разница именно по производительности между * и перечислением всех поля.
 

lart

Guest
Разница в производительности зависит от данных которые внесены в таблицу, если там blob поля то производительность будет падать.
Если ты добавляешь или удаляешь из таблицы поле, то его обработку нужно поменять в коде, ведь данные вытаскиваются не просто так "щоб було" они где то выводятся и обрабатываются, поэтому при изменении полей однозначно будет модифицироваться код, а если ты уже лезешь в код то поменять запрос не так уж и сложно.
 

LONGMAN

Dark Side of the Moon..
lart
Но как правило запросы к бд и вывод данных вынесены в разных файлах
 

newARTix

Новичок
при запросе списка статей, например, мои модели генерят запрос
select t.v1, t.v2, t.v3 from ..
исключая из него поле с текстом статьи (это поле помечено в модели как "тяжелое"). При выборке одной статьи глупо писать все поля через запятую, генерится запрос
select * from ...
 

Духовность™

Продвинутый новичок
понятно, всем спасибо

newARTix
а тяжесть определяется по типу поля (blob/text) или разработчиком чисто интуитивно?
 
Сверху