помогите определиться: огромное дерево описателей Vs блоб с данными +

Тема в разделе "Свободное общение", создана пользователем Slyman, 6 окт 2007.

Статус темы:
Закрыта.
  1. Slyman

    Slyman Гость

    Доброе время.
    Проблема такая себе. Все это в реляционной базе данных.
    Огромное дерево - порядка 300 таблиц (да. и это данность). Альтернатива - все это в определенном виде (ну ХМЛ, допустим. не важно) хранить в блобе. И по ходу дела во втором случае - строить табличку нормализованных слов с ссылками на источник. Ну поскольку разнотипные данные - несколько табличек. Но одна из них - текстовая.

    Вариант 1.
    Плюсы.
    1. Ну, допустим, привычность.
    2. Простота в реализации.
    3. Все прям как по книжке.
    ну что еще придумать....
    Минусы.
    1. Поиск ограничем языковыми возможностями (Фаерберд)
    2. Скорость поменьше работы. Не каждый раз приходится читать из всех таблиц. Порядка 10-20. То есть, много зарезервировано структур "на всякий случай". Ну и отработка удаления, внесения (и вторичными ключами и тригерами)
    3. Делая поисковую систему по-умному - придется все равно делать нормализованые словари. Но это неблагодарное дело можно солидно отодвинуть во времени.
    4. На поля данных невозможно натянуть индексы. То есть их будет слишком много 8( . Да и полей длинной свыше 90 символов - много.

    Вариант 2.
    Плюсы.
    1. Формат хранения известен. Был разработан раньше для коммуникативных возможностей.
    2. Компактность данных. (целостность не проблема в обоих случаях)
    3. Готовность данных для внешних коммуникативных сервисов.
    4. Скорость "взять/положить" - несравнимо выше чем в Варианте 1.
    5. Есть экспериментальный механизм поиска через УДФ прям в блобе.
    6. Колоссальные возможности по поиску (стимуляция написания грамотного поиска на современных принципах работы с текстом), +скорость в индексированом списке, +релевантность, +упрощение "жизни" клиенту (не надо специально обучать его языку запросов).
    Минусы.
    1. Както коробит меня в блобе хранить. Ну что за безграмотность....
    2. Все знают как с блобами работает база. Мусора будет куча. Соответсвенно периодические чистки несомненно скажутся на работе клиентов.
    3. Офигеть (извините) можно от реализации пункта 6 из плюсов этого Варианта.

    А собственно выскажитесь, кто что думает.
     
  2. Pasha

    Pasha Гость

    Для: Slyman
    1. Если все в одном блобе, то зачем тебе база данных. Если с базой работает больше одного клиента одновременно - блоб отпадает. Если только один человек - база данных в твоем случае вообще не нужна.
    2. Если коробит - значит ты, глядя на задачу, понимаешь что через блоб ее делать нельзя.
    3. Скорось "взять/положить" в базе данных лучше, чем взять+десериализовать и сериализовать+положить во втором.
    4. На случай стандартных выборки из несколькиз стандартных комбинаций таблиц есть вьюшки.
    5. Индексы можно натянуть на простые поля любого размера. И необязательно делать это ручками. Индексированные вьюшки тоже никто не отменял.
    6. Перекладывание работы на клиета не есть упрощение его жизни, скорее наоборот. Современные принципы работы с текстом...не бывает быстрой работы с текстом, обгоняющей по скорости индексы в базе.
    7. Экспериментальный поиск прямо в блобе - см. п.6
    А по поводу 300 таблиц - может быть аккуратно сократить их количество? Не бывает спецификаций начинающихся фразой "или 300 таблиц, или блоб!". Да и в схеме твоего блоба тогда должно быть около 300 разных тэгов, с уникальными наборами аттрибутов.
     
  3. Azrael

    Azrael Гость

    блоб - бяка :) . Попробуй в гугле поискать "морфологическое дерево" и/или "морфологический граф", там интересные моменты есть насчет поиска и обработки текстовой информации с минимальным начальным словарем данных. Конкретных решений нет, но общие направления ухватишь. Правда непросто все это, оч. непросто.
    А вообще, поскольку задачу ты описал весьма смутно, то, возможно, что<!--QuoteBegin-Pasha+6:10:2007, 04:01 -->
    <span class="vbquote">(Pasha @ 6:10:2007, 04:01 )</span><!--QuoteEBegin-->5. Индексы можно натянуть на простые поля любого размера. И необязательно делать это ручками. Индексированные вьюшки тоже никто не отменял.
    [snapback]80837" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    вот этого тебе хватит за глаза!
     
  4. Slyman

    Slyman Гость

    Более 500 полей. Около 270 таблиц.
    К стати, а на like индексы используются? А запросы по поиску в основном так и выглядят.
    К стати. Уже не блоб, а, скажем, большая строка.
    На клиента ничего не перекладывалось. УДФ-функции работают на сервере.

    Ну да ладно. Всем спасибо. Темка так себе. Просто послушать мнения. Может упустил чего.

    Азраель и Паша, спасибо.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей