parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ну-ну...

Misha v.3 25.05.2002 12:52

org содержит 2000 записей? А org_link допустим 10.
Твой запрос работает знаешь с каким кол-вом записей? 2000*10*10

А если еще учесть что там есть like, distinct и order...

Я почти уверен, что без создания временной таблицы этот запрос не выполняется :)

С моей точки зрения его надо разбивать на несколько...

Интересно посмотреть, что у тебя на такой запрос говорит EXPLAIN? Не покажешь? (если не в курсе, то в mysql клиенте набери EXPLAIN и через пробел твой запрос).

Возвращаясь к гостевой книге... Что-то подсказывает мне, что там не будет self join-ов, как не будет join по трем табличкам. Максимум по двум (если кто-то решит хранить посетителей отдельно, и это вряд-ли). При таком раскладе запрос, вычисляющий общее количество записей будет происходить очень быстро (с твоим примером можно даже не сравнивать, разница в порядке).
Этот count нам нужен лишь для того, чтобы напирсовать навигацию по записям в гостевухе.
Сами-же сообщения выбираются одним запросом с LIMIT (но не в запросе, а используя ^table::sql{...}[$.limit(20)$.offset(^form:current.int(0))]
После этого одно ^records.menu{} для вывода результатов и один ^for[i](0;^eval($count/20)){}
для построения линейки навигации...