Использование файлов, вместо полей TEXT

QQQ

Новичок
Использование файлов, вместо полей TEXT

Насколько рациональным является хранение больших текстовых блоков в файлах, когда в БД сохраняется только имя файла для соответствующего поля соответствующей записи, например html кода каких-то частей страниц? В PHP же делаем банальный read_file.

Из плюсов вижу следующее
- оптимизация базы: меньший размер, все поля имеют статическую длину
- более быстрый обмен данными PHP и сервера БД
- экономия памяти PHP

Из минусов вижу только отсутствие возможности стандартного поиска при помощи SQL запросов, но для реализации серьёзного поиска это всё-равно вариант убогий.

Какие ещё негативные стороны подобной схемы хранения данных кто видит?


зы: религиозных фанатиков, где концепция ради концепции, просьба не напрягаться :)
 

Mols

Новичок
QQQ
Ну на вскидку
1.Целостность данных придётся контролировать самому.
2. Придётся отслеживать возможные конфликты при одновременной записи в файл из разных процессов.
3. Когда Вы в своём приложении реализуете всю логику работы с файлами вы скорее всего потеряете и в производительности и в надёжности. (если конечно эта работа буде полноценной)
4. Трудозатраты на переписывание уже сделанного в СУБД функционала (с заведомо более низким качеством)
.....

В общем не стоит думать что СУБД это "концепция ради концепции". СУБД в общем то и должны контролировать вышеуказанные вещи.
З.Ы.
Насколько я в курсе, в МуСКЛе поля типа ТЕКСТ вообще то и хранятся отдельно от остальных данных
 

zerkms

TDD infected
Команда форума
- оптимизация базы: меньший размер, все поля имеют статическую длину
для этого поля не фиксированной ширины по той же причине и переносят в другие таблицы

- экономия памяти PHP
каким боком? какая разница, откуда данные были извлечены - из базы или из файла.
 

QQQ

Новичок
Mols спасибо. В общем понятно, что выгоду такая методика сможет дать только в некоторых частных случаях.

zerkms
например в частном примере с readfile()
во-первых там явно всё оптимизировано и делается средствами ОС, во-вторых не надо с собой таскать массив с данными или указатель на результат выборки, который висит в памяти и ждёт, когда-же его достанут
 

zerkms

TDD infected
Команда форума
Хотелось бы напомнить, что поля text ограничены размером в 64к. Ты уверен, что ты сможешь измерить разницу для отдачи таких размеров в обоих случаях?

А если файлы больше (делаю акцент, что изначально это были файлы), тогда изначально и не нужно было их помещать в базу, а хранить в том виде, в котором они сразу были доступны.
 

antson

Новичок
Партнер клуба
QQQ
На чем хостится будет ?
Шаред, ВПС, дедик ?
Ожидаемая нагрузка какая ?

html код каких то частей страницы - это 2-30 килобайт гдето ?

а теперь в зависимости от типа хостинга
представь как все будет крутиться в условиях конкуренции за ресурсы.

с mysql при включенном кеше запросов данные вероятнее всего будут вынуты из оперативки, а вот с файлами все ГОРАЗДО хуже.
А узкое место на хостинге чаще всего винты.
 

zerkms

TDD infected
Команда форума
antson
как раз в условиях борьбы за ресурсы, когда баз много, клиентов много - нативный кэш mysql будет совершенно бесполезным.
 

QQQ

Новичок
Хотелось бы напомнить, что поля text ограничены размером в 64к.
Ну, ещё medium/longtext есть


А если файлы больше (делаю акцент, что изначально это были файлы), тогда изначально и не нужно было их помещать в базу
Я пока ничего ещё ничего никуда не помещаю :)


На чем хостится будет ?
В идеале хочется неплохой производительности везде. У меня нет сейчас какого-то частного случая, я теоритически пытаюсь понять, стоит ли это применять при необходимости ускорить работу скриптов. Для общего развития, так сказать :)
 

c0dex

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

antson

Новичок
Партнер клуба
QQQ
практическая задача : поиск по сайту.
при хранении в файлах как будет реализована ?
 

QQQ

Новичок
antson
Про это, как один из минусов предлагаемой концепции, я уже написал выше. Как и про то, что считаю использование для поиска LIKE "%...%" крайне убогим и ограниченным способом. Как же морфология слов, частота и так далее? :)
 

antson

Новичок
Партнер клуба
zerkms
одним из вопросов была посещаемость ?
Если между хитами больше минуты, то любые механизмы кеширования бесполезны.

файлкеш овер майскл считаю извратом по определению.
Единственное исключение, когда у хостера поднято несколько
физических серверов с апачем и отдельный сервер баз данных,
и нет возможности доставить муську себе отдельно.
Но это такой изврат, что лучше сменить хостера.
 
Сверху