parser

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

 

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

Никогда так не делай!

Sanja (v.2) 16.06.2002 00:16

Я на это уже нарывался, спасибо Мише - наставил на путь истинный.

Выбрать N сообщений с левелом = 0 и рекурсивно обойти их деток - казалось бы, что проще! Ан нет!

Я протестировал первый вариант своего форума на 25 записях с нехитрой структурой и долго хлопал в ладоши от радости - надо же, как круто - всё заработало! Потом загнал в таблицу пятимегабайтный архив старого форума с 9000 записей, сервер вздохнул, parser3.exe выжрал под сорок мегов памяти, но дерево постороил (не всё, limit 0, 50 последних записей, есессно). Выгрузил своего уродца на сайт провайдера - перестало работать совсем - там ограничение на время выполнения и объём процессорных ресурсов. Тут я начал чесать репу и набрал в MySQL SHOW PROCESSLIST и ужаснулся.

Потом по Мишиному совету ввёл дополнительное поле - id треда для каждой реплики - и это облегчило рекурсию и сильно ускорило работу. Вот такие дела...

ЗЫ ты дескрайбом по своей конструкции select * from table where parent in($select) проходил? Открой мануал по команде DESCRIBE и послушай, что тебе MySQL выскажет по поводу твоего оператора и его прожорливости...

ЗЗЫ Могу прислать по почте движок, который я накарябал для http://gfkforum.bougakov.com/forum/ - посмотришь, как у меня всё устроено.