А придумайте, пожалуйста, вопросиков

fixxxer

К.О.
Партнер клуба
А есть под рукой говнокод такой? ;) У меня есть один, не совсем говно, но весьма ;) Но может у тебя интереснее ;)
Не, специально придумываю, мне этот процесс нравится даже :D

Про новости и категории - ну where not in же, зачем извращаться?
 

MiksIr

miksir@home:~$
> where not in
Ага, с подзапросом... Да не... это как раз кривое решение.
 

fixxxer

К.О.
Партнер клуба
Ты еще скажи, что решение классической задачи "вывести все отделы без сотрудников" через where not exists кривое.

Не надо недостатки некоторых СУБД выдавать за кривые решения. Тем более у тебя вон постгрес =)
 

AmdY

Пью пиво
Команда форума
Вопросы по sql на собеседовании полное ражно, я даже здесь в тему sql практически не захожу, никогда не использую сложные запросы, за исключением правок в легаси коде.

Для фильтр вопроса очень хорошо подходитя вопросы по дебагу, в частности xdebug. Он сразу показывает опыт, уровень проектов и скорость устранения проблем. Понятное дело что покрывает лишь 99% случаев, но лучше чем фигов sql, который как раз неприятно поддерживать и дебажить.
 

fixxxer

К.О.
Партнер клуба
никогда не использовал xdebug.

точнее один раз поднимал потыкаться ради интереса
 

MiksIr

miksir@home:~$
да почему недостатки, джойн как правило оптимальнее подзапроса в IN, это факт. Оптимизаторы даже пытаются переписывать запросы такими подзапросами на join внутрях базы.
 

fixxxer

К.О.
Партнер клуба
да почему недостатки, джойн как правило оптимальнее подзапроса в IN, это факт. Оптимизаторы даже пытаются переписывать запросы такими подзапросами на join внутрях базы.
не. просто некоторые базы не умеют их готовить

Код:
# explain select dep.id from dep where not exists (select 1 from emp where dep_id = dep.id);
                          QUERY PLAN                           
---------------------------------------------------------------
 Hash Anti Join  (cost=1.01..22.26 rows=1200 width=4)
   Hash Cond: (dep.id = emp.dep_id)
   ->  Seq Scan on dep  (cost=0.00..12.40 rows=2400 width=4)
   ->  Hash  (cost=1.00..1.00 rows=2 width=4)
         ->  Seq Scan on emp  (cost=0.00..1.00 rows=2 width=4)

# explain select dep.id from dep left join emp on (emp.dep_id = dep.id) where emp.id is null;
                          QUERY PLAN                           
---------------------------------------------------------------
 Hash Left Join  (cost=1.01..22.43 rows=12 width=4)
   Hash Cond: (dep.id = emp.dep_id)
   Filter: (emp.id IS NULL)
   ->  Seq Scan on dep  (cost=0.00..12.40 rows=2400 width=4)
   ->  Hash  (cost=1.00..1.00 rows=2 width=8)
         ->  Seq Scan on emp  (cost=0.00..1.00 rows=2 width=8)
первый план попроще будет, не?:)

То, что джойны всегда оптимальнее подзапросов, это миф, выращенный на примере примитивного mysql, в котором просто из методов объединения реализован только nested loop )
 

fixxxer

К.О.
Партнер клуба
Да, решением задачи на пятерку с плюсом я бы считал три корректных варианта =)
 

fixxxer

К.О.
Партнер клуба
По сабжу еще иногда могу спросить, откуда берутся шестнадцатеричные вкрапления в теле ответа веб-сервера [... -> ...] зачем вообще нужен chunked transfer encoding [... -> ...] и почему http/1.0 без него работать мог, а в http/1.1 пришлось ввести.
 

fixxxer

К.О.
Партнер клуба
С википедией неинтересно. ;) Это вопрос на логическое мышление, на самом деле: про keepalive-то в http/1.1 уж, наверное, все в курсе, а дальше надо просто подумать. Матчасть я могу и подсказать, интересует способность понять, зачем это сделано. Если человек знает, то отвечает сразу, и даже как-то неинтересно =) интереснее когда с подсказками понимает своей головой.
 

Ragazzo

TDD interested
fixxxer
ну еще лучше, кипэлайв то кипэлайвом но вот весь w3c rfc для http1.1 я таки не осилил) так по мере надобности/сталкиваемости дебага в браузерах :D Ну вот понятно что в 1.1. он для того чтобы передавать кусками данные вида => длина,данные. но почему 1.1. без него вообще не може работать не понятно :D ну разве что идея бредовая о том что проще через несколько коннектов передать кусками чем через один, но это очень спорно, ага.
 

Ragazzo

TDD interested
fixxxer
т.е. ты хочешь сказать что 1.1 не сможет работать без chunked просто через content-length или ты про то что иначе нужно указывать content-length для каждого из куска данных? :S вообщем я пошел за мылом и веревкой от осознания собственной ничтожности :D
 

Вурдалак

Продвинутый новичок
Подумай как клиент определит конец документа, если нет content-length.
 
Сверху