Сравнение вариантов подключения файлов

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

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

[Предупреждение]Предупреждение

Важно понимать, если 1000 объектам подключить по одному файлу размером 10 МБ и сохранять эти файлы непосредственно в базе, общий объём данных увеличится примерно на 10 ГБ. И многие, особенно бесплатные СУБД не будут работать с таким объемом. Это критично скажется на скорости открытия, резервного копирования и общей производительности. Поэтому оценивайте не размер одного файла, а общее количество записей и их суммарный объём.

При хранении файлов в базе выбор их может осуществляться только с рабочего места, при хранении ссылок выбор может осуществляться как с рабочего места, так и с сервера.

Таблица 7.

СпособКоличество файловМесто хранения файлаТип поляТэгСвойствоУказание папкиВыбор файла
Способ 11Внутри базы (размер БД растёт)BLOBНе требуетсяС рабочего места
Способ 21На диске (размер БД НЕ растёт)строковое/CHAR / TEXTdocumentДа (корневая папка)С рабочего места или сервера
Способ 32+Внутри базы (размер БД растёт)BLOBgalleryfilesНе требуетсяС рабочего места
Способ 42+На диске (размер БД НЕ растёт)BLOBgallerylinksДа (корневая папка)С рабочего места или сервера
Способ 52+Или на диске или внутри базы (растет или не растет БД зависит от способа добавления файла)BLOBgallerylinks, filesДа (корневая папка)С рабочего места или сервера


[Примечание]Примечание

Изменение способа хранения:

В системе предусмотрен специальный мастер, который позволяет:

  • выгрузить все документы из поля BLOB (способы 1 и 3) на диск;

  • автоматически заменить способ хранения на способ 4 (хранение ссылок);

  • обновить все ссылки в базе данных.

Это позволяет без потери данных перейти от хранения внутри базы к хранению ссылок, когда объём файлов становится критическим.

Как выбрать подходящий вариант

Таблица 8.

Единичные документыдо 50 объектов по 1 файлу → Способ 1
Небольшая галереяограниченное количество объектов, суммарно до 50 файлов → Способ 3
Много документовдля сотен и тысяч объектов → Способ 2
Большой архив документовдля сотен и тысяч объектов → Способ 4
Большой архив документов, опытные проинструктированные пользователидля сотен и тысяч ссылок и суммарно загруженных до 50 файлов → Способ 5


Особенности и ограничения

Хранение внутри базы (Способы 1 и 3)

Преимущества

  • Все файлы переносятся вместе с базой автоматически.

  • Не нужно следить за путями к папкам.

  • Файлы защищены паролем базы данных.

Недостатки

  • Размер базы растёт пропорционально объёму файлов.

  • При больших объёмах (>1 Гб) замедляется открытие и работа.

  • Для резервного копирования требуется много места.

  • Ограничение на максимальный размер файла БД (зависит от СУБД).

Хранение ссылок на диске (Способы 2 и 4)

Преимущества

  • Размер базы практически не меняется.

  • Высокая скорость работы даже с большими файлами.

  • Файлы можно редактировать стандартными средствами ОС.

  • Нет ограничений по размеру хранимых файлов.

Недостатки

  • При переносе нужно копировать базу + папку с файлами.

  • Переименование или перемещение файла делает ссылку «битой».

  • Резервное копирование требует сохранения двух сущностей.

  • Требуется организовать доступ к файлам для всех пользователей.

Комбинированный способ, хранение или внутри базы или хранение ссылок на диске (Способы 5)

Преимущества

  • Выбор варианта хранения зависит от пользователя

  • Файлы, которые загружены в базу переносятся вместе с базой автоматически.

  • Для файлов, которые загружены в базу не нужно следить за путями к папкам.

Недостатки

  • Если загружено много файлов, размер базы растёт пропорционально объёму файлов.

  • При больших объёмах (>1 Гб) замедляется открытие и работа.

  • Для резервного копирования требуется много места.

  • Ограничение на максимальный размер файла БД (зависит от СУБД).