metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2007-12-14 06:30 pm

В комментариях безумцы!

[...]

Человек спрашивает, как правильно раздавать с СУБД связанные с ней внешние файлы (есть такой метод - вместо блобов держать файлы рядом на сервере, а в базу писать путь к ним). Речь идет об Interbase и приложении на дельфи.
Чего там только не насоветовали:

1) Купить 1С:Архив
2) Изучать CMS
3) Хранить базу в LDAP и файлы тоже в LDAP
4) Отдавать документы по HTTP с помощью mod_rewrite

Единственный более-менее имеющий отношение к делу комментарий - первый - хранить файлы в блобах. Все остальное - боб с горохом, ад, израиль, ханука и дивизия СС на via dolorosa.

К вопросу о том, что всякое ИТ настолько безумная область, что до сих пор на каждую задачу можно найти 100 способов решения, из которых 90 будут неприменимы для данного конкретного случая, а оставшиеся 10 настолько дорогими и безумными, что проще придумать 101 способ, чем осознать существующие.

[identity profile] themech.livejournal.com 2007-12-14 05:20 pm (UTC)(link)
последний абзац - цитата дня, однозначно!

[identity profile] 1ceheart.livejournal.com 2007-12-14 07:07 pm (UTC)(link)
Про LDAP хорошо :)

[identity profile] veter-r-r.livejournal.com 2007-12-14 07:29 pm (UTC)(link)
Хм.. как говорила та эстонская девушка "Вопрос понятен, а в чем проблема?"
В смысле, зачем вся эта петрушка с блобами и прочими мерзостями?

[identity profile] samurai-within.livejournal.com 2007-12-14 07:45 pm (UTC)(link)
/me как-то слабо верит в адекватность работы базенки с гигами блобов. Все конечно от задачи зависит.. но скорость имхо будет падать сииильно.

[identity profile] pete-by.livejournal.com 2007-12-15 01:52 pm (UTC)(link)
По-моему выбор конкретного решения, сильно зависит требований.
Если хранить файлы на диске:

Cons:
1. Сложности с транзакциями
2. Усложнение механизма репликации

Pros:
1. Апач отдает файлы быстрее, чем реляционная БД
2. Проще прикрутить скажем индексацию документов и полнотекстовый поиск по не plain-text документам вроде DOC.

Если хранить в базе, а не на диске:

Cons:
1. Сильно возрастает нагрузка на базу, возрастает длительность транзакции, при прочих равных уменьшается кол-во конкурентных пользователей, которых теняет система.
2. Усложнение поиска по документам, т.к. придется скорее всего писать собственный механизм индексирования (или покупать).
3. При большом количестве документов придется делать распределенную базу и настраивать балансировку нагрузки, имхо на уровне http-сервера сделать это проще.

Pros:
1. Транзакционность
2. Тривиальная репликация

Это из того, что сразу приходит в голову, наверняка есть еще что-то.

[identity profile] ennor.livejournal.com 2007-12-15 03:07 pm (UTC)(link)
За все платформы не скажу, но для связки Win+MSSQL вопрос "BLOB vs. FS" уже давно стал исключительно религиозным. Есть куча различных аспектов, влияющих как на производительность, так и на расширяемость в обеих архитектурах - если их все учесть, то для каждого конкретного случая можно построить оптимальную систему.

А когда все это пишется на коленке доморощенными спецами, которые случайно где-то выучили SELECT * FROM ALL_TABLES и сочли, что для работы с базой им этого будет достаточно - тогда конечно, и LDAP с плейн-текстом раем покажется...