У меня есть таблица reply
, структура которой выглядит следующим образом:
Id name parent_id ...
1 reply1 0
2 reply2 1
3 reply3 2
4 reply4 3
5 reply5 4
Эта таблица была построена на иерархической взаимосвязи (вроде parent-> child), как я могу получить все подчиненные ответы согласноидентификатор одного replies
?Я хочу использовать один SQL для достижения максимальной производительности.потому что на самом деле объем replies
огромен и, вероятно, в одном дереве содержится более 1000 строк.
Я пытался использовать START WITH и CONNECT BY, но это привело к низкой производительности.
Приложение:
Мой ржавый sql:
SELECT *
from reply
start with (parent_Id=0 AND id=?)
connect by prior Id=parent_Id
Индексируются и Id, и parent_id, оператор "connect by" выглядит дорогостоящим и вызывает высокую загрузку процессораиспользование на стороне базы данных, если одновременно запускается несколько SQL-соединений "connect by".например: 30 потоков: на выполнение одного запроса уходит почти 30 минут