Использую смесь алгоритмов nested sets и nested trees, тоесть в структуре таблицы есть поля id, left_key, right_key и parent. При нарушении ключей left_key и right_key можно востановить дереву основываясь на id и parent. Тоесть на маленьком дереве еще можна рекурсивно пройтись по всем веткам, а вот на очень большом дереве (около 10000 записей) такой метод уже не работает - время нужное на рекурсивный проход такого дерева превышает все допустимые таймауты.
Сейчас пытаюсь написать функцию которая позволит продолжить востановление дерева с любой его точки.
Кто то еще сталкивался с проблемой восстановления очень большого дерева?