Автор Тема: Быстродействие NESTED деревьев...  (Прочитано 5641 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Tryapkonator

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 92
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Быстродействие NESTED деревьев...
« : 08 Июля 2005, 07:25:44 »
Реализация каталогов итп на NESTED деревьев удобнее и правельнее итп, только я вот чего не могу вкурить =))) Я добавляю запись к дереву, половина индексов меняется к чертям собачим. Т.е. теоритически если ветка дерева очень большая и разветвленная, то добавление новой ветки будет вести к смене n-ного количества индексов, если новая ветка расположена максимально к корню, получается что нуно будет менять вообще практически все индексы. И где тут быстродействие? Или я чего-то не понимаю?

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Быстродействие NESTED деревьев...
« Ответ #1 : 08 Июля 2005, 13:09:39 »
ты говоришь о быстродействии добавлении нового узла.

А nested sets славится быстродействием выборки и используется для деревьев со сравнительно редкими вставками
+
Если струкутуру дерева хранить в отдельной таблице, она будет иметь фиксированный формат и ее будет работать быстрее.

ЗЫ
мне известен древовидный форум написаный с использованием Nested Sets  и работающий успешно.
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Tryapkonator

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 92
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Быстродействие NESTED деревьев...
« Ответ #2 : 08 Июля 2005, 19:51:13 »
А можно на этот форум глянуть? А то как-то... Ну не знаю. Еще можно понять использование Nested Sets для каталога сайта, который задается единожды и редактируется крайне редко, но форум...

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Быстродействие NESTED деревьев...
« Ответ #3 : 08 Июля 2005, 20:12:37 »
нет, ссылка не для публики.
Там просто структура отделена от данных. В таблице структуры всего 4 int-овых поля и всего один индекс. С такими таблицами mysql работает быстро.
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Tryapkonator

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 92
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Быстродействие NESTED деревьев...
« Ответ #4 : 12 Июля 2005, 04:15:51 »
1 индекс. Мне трудно спорить, я еще новичек, но... Если крепить данные со структурой, то нужен уникальный индекс. Обычно он и бывает первичным, чтобы точечные запросы происходили быстрее. Потом 2 индекса левой и правой ганицы и, как я понимаю, уровень aka level. Если я все правильно расписал, то было бы гораздо удобнее поставить еще индекс и по уровню, хотя я могу ошибаться...

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Быстродействие NESTED деревьев...
« Ответ #5 : 12 Июля 2005, 12:31:20 »
ах да, про первичный ключ забыл. Два индекса достаточно:
primary key (node_id)
key (cat_left, cat_right, cat_level)

Про особенности составных индексов в mysql можешь прочесть в мане (если еще не знаешь)
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Быстродействие NESTED деревьев...
« Ответ #6 : 12 Июля 2005, 12:32:41 »
Цитировать
Tryapkonator:
Если крепить данные со структурой, то нужен уникальный индекс.

я  выше написал, что данные и структуру надо разделять на 3 таблицы.
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Tryapkonator

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 92
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Быстродействие NESTED деревьев...
« Ответ #7 : 12 Июля 2005, 17:04:03 »
Про составные индексы вкурсе, про оссобенности в mysql нет, гляну.
Цитировать
я выше написал, что данные и структуру надо разделять на 3 таблицы.

На 2 или на 3?

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Быстродействие NESTED деревьев...
« Ответ #8 : 12 Июля 2005, 17:33:01 »
Ой, конечно на 2.
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Tryapkonator

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 92
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Быстродействие NESTED деревьев...
« Ответ #9 : 12 Июля 2005, 17:41:54 »
Да, тогда ясно. Большое спасибо за разъяснение.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28