Intente usar un modelo de conjunto anidado. Se describe en Gestión de datos jerárquicos en MySQL .
El gran beneficio es que no tiene que usar recursividad para recuperar nodos secundarios, y las consultas son bastante sencillas. La desventaja es que insertar y eliminar requiere un poco más de trabajo.
También escala muy bien. Conozco un sistema extremadamente grande que almacena jerarquías de discusión usando este método.