Вопрос кажется немного запутанным.
Я хочу сократить абсолютное время выполнения.
Вы имеете в виду прошедшее время? Конечно, использование правильной структуры данных улучшит пропускную способность, но для данной структуры данных минимальный порядок алгоритма является абсолютным и не имеет ничего общего с тем, как вы реализуете алгоритм.
Какой шаблон проектирования существует для реализации ....?
Шаблоны проектирования - это то, что код представляет собой , а не шаблон для написания программ и полезные инструменты для разработки учебных программ. Начать с шаблона и привести свой код в соответствие - это само по себе анти-шаблон.
Никто не может ответить на этот вопрос, не зная намного больше о ваших данных и их структуре, однако ключевым фактором эффективности будет структура данных, которую вы используете для реализации своего дерева. Если истекшее время важно, тогда, конечно, обратите внимание на параллельное выполнение, однако, возможно, стоит подумать о выполнении операции в другом инструменте - базы данных сильно оптимизированы для работы с большими наборами данных, однако обратите внимание, что очевидный метод описания дерева в реляционная база данных очень неэффективна, когда дело доходит до изоляции поддеревьев и обхода дерева.
В ответ на предложение Адама о разветвлении вы ответили:
Я "слышал", что pcntl не является хорошим решением. Есть опыт?
Где ты это услышал? Конечно, разветвление из вызываемого скрипта CGI или mod_php - плохая идея, но нет ничего плохого в том, чтобы делать это из командной строки. У вас есть Google для длительных процессов PHP (имейте в виду, что там много плохой информации). Какой код вы напишите, будет зависеть от операционной системы, которую вы не указали.
Я подозреваю, что вы могли бы решить большую часть проблем с производительностью, указав, какие части дерева необходимо проверить, и проверив только эти части И запустив проверки при обновлении дерева, или, по крайней мере, пометив узлы как ' грязный».
Вы могли бы найти это полезным:
http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/
http://en.wikipedia.org/wiki/Threaded_binary_tree
С