Форум Фотогалерея Деловой мир Мелитополя
Мелитополь
Мелитопольский форум
 
 RSS  FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Помогите с деревьями в MySQL.

 
Начать новую тему   Ответить на тему    Список форумов Мелитополь -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
SLP

Бывалый


Пол: Пол: Он
Зарегистрирован: 29.06.2005
Сообщения: 2475

Репутация: 185.9
голосов: 24

СообщениеДобавлено: Чт Июл 19, 2007 22:30 pm    Заголовок сообщения: Помогите с деревьями в MySQL. Ответить с цитатой

У нас есть таблица в MySQL с классическая древовидная структура ≈ item_id aka primary key, parent_id, данные.
Со временем эксплуатации дерево разрослось до
необъятных размеров, и я с разочарованием заметил, что слишком много
ресурсов идет на большое количество запросов к БД; задачи получить
список всех потомков узла, получить цепочку всех предков узла,
получить количество потомков данного узла занимают O(n) времени.

Помогите сделать так, чтобы время выполнения этих, а также других
тривиальных операций с иерархической структурой равнялось O(1) вне
зависимости от сложности самой структуры.

те - надо сделать так чтобы любые данные можно было выбрать за ОДИН запрос.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение  
Giver

Залетный


Пол: Пол: Он
Зарегистрирован: 19.07.2007
Сообщения: 6

Репутация: 7.6

СообщениеДобавлено: Сб Июл 21, 2007 11:48 am    Заголовок сообщения: Ответить с цитатой

джойн самому к себе по parent_id = id с выбором нужных колонок
Вернуться к началу
Посмотреть профиль Отправить личное сообщение  
SLP

Бывалый


Пол: Пол: Он
Зарегистрирован: 29.06.2005
Сообщения: 2475

Репутация: 185.9
голосов: 24

СообщениеДобавлено: Сб Июл 21, 2007 15:05 pm    Заголовок сообщения: Ответить с цитатой

Giver писал(а):
джойн самому к себе по parent_id = id с выбором нужных колонок

а пример можно ?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение  
Giver

Залетный


Пол: Пол: Он
Зарегистрирован: 19.07.2007
Сообщения: 6

Репутация: 7.6

СообщениеДобавлено: Сб Июл 21, 2007 20:11 pm    Заголовок сообщения: Ответить с цитатой

select t1.id, t2.id, t3.id from table t1 left join tabel t2 on t1.parent_id=t2.id left join ......
и так далее, на сколько нада уровней
Вернуться к началу
Посмотреть профиль Отправить личное сообщение  
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Мелитополь -> Программирование Часовой пояс: GMT + 2
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB

Р: 523889

База отдыха «Белый парус» пгт Кирилловка Азовское море.

Рейтинг Мелитопольских сайтов на Melitopol.org Hosting by VivaNET