Я пытаюсь решить, хранить ли некоторые XML-данные в однозначно определенных путях к файлам в файловой системе Linux или в текстовых столбцах таблицы базы данных. При прочих равных условиях, примерно одинаково ли время доступа для идентификатора элемента (либо включенного в путь к файлу, либо в уникальный столбец базы данных)?
Я ожидаю, может быть, 20 000 предметов.
20 000 - это ничто для базы данных, но очень много для файловой системы, если все они находятся в одной папке.
Если вы разделите их на отдельные папки (возможно, используйте первые 2 или 4 буквы GUID) это поможет.
Это также зависит от вашей рабочей нагрузки. Если вы выполняете много блокирующих / заблокированных запросов к таблице, используйте файловую систему.
Если вы хотите хранить метаданные с файлами и получать к ним доступ от третьих лиц, используйте db.
Если вы хотите чтобы выполнить собственную аутентификацию для взаимодействия с файлами, используйте db.
Если вы хотите иметь возможность легко изменять файлы, скажем, из блокнота, используйте файловую систему.
Если они большие, используйте файловую систему . Вам не нужно, чтобы в вашей таблице было 20 ГБ файлов, если вы можете этого избежать.
Файловые системы - это базы данных. Они просто оптимизированы для работы под конкретную задачу - для хранения довольно больших объектов в иерархии.
Когда вы решаете, хотите ли вы базу данных или файловую систему, следует учитывать множество факторов:
Если вы собираетесь использовать их как большие двоичные объекты, файловая система работает быстрее. Чем они больше, тем лучше они обслуживаются в виде файлов.
Если вам нужны структурированные данные, синтаксический анализ XML в базе данных выполняется намного быстрее.
См .: