Назад | Перейти на главную страницу

Является ли поиск имени файла в каталоге из 20 000 элементов таким же эффективным, как поиск строки в базе данных?

Я пытаюсь выбрать между хранением некоторых XML-данных либо в однозначно определенных путях к файлам в файловой системе Linux, либо в текстовых столбцах в таблице базы данных. При прочих равных условиях, примерно одинаково ли время доступа для идентификатора элемента (либо включенного в путь к файлу, либо в уникальный столбец базы данных)?

Я ожидаю, может быть, 20 000 предметов.

20000 - это ничто для базы данных, но немало для файловой системы, если все они находятся в одной папке.

Если вы разделите их на отдельные папки (возможно, используйте первые 2 или 4 буквы GUID), это поможет.

Это также зависит от вашей загруженности. Если вы делаете много блокирующих / заблокированных запросов к таблице, используйте файловую систему.

Если вы хотите хранить метаданные с файлами и получать к ним доступ от третьих лиц, используйте db.

Если вы хотите использовать собственную аутентификацию для взаимодействия с файлами, используйте команду db.

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

Если они большие, используйте файловую систему. Вы не хотите, чтобы в вашей таблице было 20 ГБ файлов, если вы можете этого избежать.

Файловые системы являются базы данных. Они просто оптимизированы для работы под конкретную задачу - удерживать довольно большие объекты в иерархии.

Когда вы решаете, нужна ли вам база данных или файловая система, необходимо учитывать множество факторов:

  • Производительность - это эталоны.
  • Управляемость - это зависит от того, кто будет выполнять техническое обслуживание.
  • Масштабируемость - это зависит от текущего размера базы данных, от ожидаемого размера через несколько лет, от скорости роста и от того, насколько легко добавить новые серверы в вашу среду.
  • Нормализация - как вы будете хранить объекты - например, BLOB-объекты или проанализированную структуру?
  • Как часто объекты будут меняться? ищутся и каким образом.

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

Если вам нужны структурированные данные, анализируемый XML в базе данных выполняется намного быстрее.

Видеть: