Является ли использование дополнительных пробелов для того, чтобы сделать запросы MySQL более читабельными, неэффективными до такой степени, что они того не стоят? - PullRequest
7 голосов
/ 10 мая 2011

Допустим, у меня есть запрос

ОБНОВЛЕНИЕ foo.bar SET crop = 5 ГДЕ почва = 'коричневый'

Я бы написал так:

UPDATE  
  foo.bar  
SET  
  crop = 5  
WHERE  
  soil = 'brown'  

Я пишу запросы в этом формате, чтобы сделать их более читабельными в моем коде.Однако, это передается между веб-сервером и сервером БД, поэтому я предполагаю, что потраченное впустую пространство займет некоторую полосу пропускания и замедлит передачу.

Предполагается, что я пишу гораздо более крупные запросы, которыевзять 20+ строк, это неэффективно до такой степени, что оно того не стоит?

Ответы [ 4 ]

5 голосов
/ 10 мая 2011

Вы всегда должны писать свои запросы так, чтобы они были максимально читабельными.Если вы действительно беспокоитесь о сохранении байтов, переданных на сервер и с сервера, вы можете выполнить свои запросы через соединитель базы данных и установить такие параметры, чтобы удалить лишние пробелы.Это может уже происходить с вашим текущим кодом.Вы действительно отследили данные SQL, которые отправляются по сети, чтобы посмотреть, как они выглядят?

3 голосов
/ 10 мая 2011

Нет, нет большой разницы в эффективности.Читабельность - это добродетель, которая должна победить.Если вы действительно обеспокоены эффективностью и часто используете запросы, которые отличаются только значениями параметров, вы можете рассмотреть возможность использования подготовленных операторов, для которых план выполнения запроса рассчитывается только один раз (с соответствующим увеличением эффективности).

1 голос
/ 10 мая 2011

Вы должны форматировать запросы таким образом, чтобы вы и все члены вашей команды понимали их даже через 6 месяцев после их написания.

Пробелы никак не влияют на скорость запроса.

0 голосов
/ 10 мая 2011

ИМО, это преждевременная оптимизация. У вас есть показатели, которые устанавливают ощутимую разницу в производительности? Код должен быть написан для чтения. Позвольте мне сказать это так, что вы бы лучше прочитали:

Update foo.bar
Set crop = 5
Where soil = 'brown'

uPdAte fOo.bAr sEt cRoP=5 wHErE sOil='brown'

Читаемость имеет значение. Это имеет гораздо большее значение, чем незначительные различия в производительности.

...