Деревья

mihail.zagoskin

Новичок
Доброго времени суток, у меня уже была тема про деревья, в принципе костылями все как-то решается, но хотелось бы услышать мнения про разные метода, в частности nested sets при работе с большими данными, но даже не совсем большими, а относительно. Допустим одновременно выборка 1000 записей и вставка 1000+- записей, как это долго будет обрабатываться, плюсы, минусы и тд.
 

AmdY

Пью пиво
Команда форума
тысячи и десятки тысяч записей для ДБ - это ничто, если вы нигде не накосячите.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Не занимайтесь преждевременной оптимизацией, иначе у вас никогда не будет этих 1000+ запросов на вставку
 

mihail.zagoskin

Новичок
Не занимайтесь преждевременной оптимизацией, иначе у вас никогда не будет этих 1000+ запросов на вставку
Почему преждевременной, я уже тут тему поднимал подобную, так что сейчас уже в пределах данной погрешности. И да, это не постоянно, это просто бывает наплывами, что жутко тормозит все, обычно меньше. Поэтому я сразу на будущее...
 

Squats

Новичок
Сложно судить, когда скрипта нет, и никаких логов.
Ну даже 1000 в секунду это будет не проблема, вы даже не заметите.
Так как это делает не 1 человек, а 1000.
Тут то с мильёнами проблем нет, а у вас 1000. =)
Вы видимо путаете выборку, вывод и пользовательский HTTP запрос.
Но судя по тому, что вы делаете, вы просто хреначите 1000 раз SQL запрос и еще раз сверяете это 1000 раз.
Хотя требовалось это проверить 1 запросом и сделать вывод соответствующему пользователю 1 раз.
 

WMix

герр M:)ller
Партнер клуба
Но судя по тому, что вы делаете, вы просто хреначите 1000 раз SQL запрос и еще раз сверяете это 1000 раз.
а ты как делаешь, все дерево на клиенте считаешь и обновляешь?
Ну даже 1000 в секунду это будет не проблема, вы даже не заметите.
будет, на каждый insert всегда идет select и множественный update

 

ksnk

прохожий
есть еще Materialized Path. Если таблица не на сотни тысяч записей, то как вариант вполне быстра для вставки. Отдельным ее плюсом будет то, что она не крашится при косяках.

Есть closure path - достаточно эффективный для вставки и на первый взгляд не громоздкий, но не пробовал, не знаю.

а ты как делаешь, все дерево на клиенте считаешь и обновляешь?
Если нужно вставить большое поддерево, без особого извращения, то можно вставить поддерево в корневой элемент (это довольно быстро, так как в конец вставляется), потом переместить все это поддерево в нужное место, это тоже быстрее, чем по листочку вставлять. А так - да, nеsted sets он для выборки, а не для вставки.
 
Сверху