Как уменьшить нагрузку кода?
либо nested sets структура(проще всего) либо триггер срабатывающий на изменение кол-ва рефералов и вызывающий обновление у записей-родителей
По моему, надо над структурой БД подумать. С вашей задачей я не сталкивался, но первое что приходит в голову (как уже выше сказали) NestedSets - это позволит делать быстрые выборки любой части дерева.