используется для образования древовидной структуры, здесь parent_id указывает на определённого родителя в этой же таблице, в случае если у записи parent_id = null, она не имеет родителя.
имеем id ветки. необходимо найти все записи относящиеся к ней, независимо от уровня вложенности. читал о иерархических запросах (WITH), но адекватных манов с нормальными примерами не встречал.
П.С. эта таблица из довольно крупного и известного веб приложения, менять в ней что-то не представляется возможным
----- if(time()>1356048000) die();
Champion
Отправлено: 30 Октября, 2011 - 17:30:31
Активный участник
Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008 Откуда: Москва
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
White пишет:
а что ж мускуль так обидели?
а мускул по своей архитектуре - вообще удивителен.
Например, есть совершенно уникальный квери кэш - кэширующий не план запроса, как другие, а результаты.
Куча несвязанных типов хранилищ, сделанных вовсе модулями, общающиеся через API. Из которых умеет транзакции и при этом работает - только 1 - innoDB.
Все вопросы кластеризации/high-available решаются репликации, с которой - головная боль и без которой - головная боль.
----- PostgreSQL DBA
White
Отправлено: 30 Октября, 2011 - 22:14:55
Частый посетитель
Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011 Откуда: Днепропетровск
Помог: 28 раз(а)
Мелкий интересно почему тогда он остается настолько популярным?
----- if(time()>1356048000) die();
DeepVarvar
Отправлено: 30 Октября, 2011 - 22:19:18
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
White, из-за своей простоты и низкого порога вхождения. Как и PHP, в общем.
DeepVarvar пишет:
Халявный?
ну и не без этого, конечно
----- PostgreSQL DBA
Champion
Отправлено: 31 Октября, 2011 - 08:36:34
Активный участник
Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008 Откуда: Москва
Помог: 57 раз(а)
Ну постгре и файрберд вроде бы не менее халявные.
Просто большинству людей СУБД нужна на уровне простеньких селектов. С этим mysql справляется. А как только надо сделать что-то более или менее сложое, то ту его не хватает. Даже не только рекурсивные запросы или оконные функции. Выборки, которые ничего необычного не используют, которые просто включают много условий, сортировок и объединений, mysql-м часто весьма неудачно оптимизируются тоже
White
Отправлено: 31 Октября, 2011 - 18:41:38
Частый посетитель
Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011 Откуда: Днепропетровск
Помог: 28 раз(а)
Champion пишет:
СУБД нужна на уровне простеньких селектов
для этого вполне достаточно sqlite. тем более что на простых выборках он по скорости у mysql выиграет.
----- if(time()>1356048000) die();
Мелкий
Отправлено: 31 Октября, 2011 - 19:52:42
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Champion пишет:
Ну постгре и файрберд вроде бы не менее халявные.
Ну если на то пошло, то и у оракла и у db2 есть бесплатный лицензии. И их производительности хватит на весьма неслабый проект.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.