Ну-ну...
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)){}
для построения линейки навигации...