URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 39083
[ Назад ]

Исходное сообщение
"Тематический каталог: Работа с древовидными структурами в MySQL (sql mysql php tree)"

Отправлено auto_topic , 24-Ноя-07 20:18 
Обсуждение статьи тематического каталога: Работа с древовидными структурами в MySQL (sql mysql php tree)

Ссылка на текст статьи: http://www.opennet.me/base/dev/mysql_tree.txt.html


Содержание

Сообщения в этом обсуждении
"Работа с древовидными структурами в MySQL (sql mysql php tree)"
Отправлено AirWorker , 24-Ноя-07 20:18 
А рекурсия + кеширование чем не устраивают?
Помоему проще, надежнее и производительнее

"Работа с древовидными структурами в MySQL (sql mysql php tree)"
Отправлено Дима , 15-Авг-10 12:20 
Например,
1. Нужно получить всех детей для заданного узла, включая вложненные.
2. Нужно получить всех родителей для заданного узла.
и так далее. Эти операции осуществляются за один SQL-запрос по проиндексированным значениям левого и правого чисел.
А при использовании рекурсии будет по одному SQL-запросу на каждой итерации.

А кеширование всегда должно быть к месту: не всегда полезно хранить узлы дерева в кеше, если обращение к этим узлам нечастое. Или, например, кол-во узлов дерева очень большое, и хранить все дерево в кеше невозможно. Для каких-то задач правильнее будет хранить в кеше не узлы дерева (id, parentId), а их содержимое. При оптимальной мощности кеша и при частом обращении к одному и тому же содержимому узлов это будет полезно.