Какую базу данных я должен использовать для хранения фотографий с метками времени (или вообще BLOBS)? - PullRequest
0 голосов
/ 03 октября 2011

Мне нужна база данных, которая может хранить большое количество больших двоичных объектов.BLOB будут представлять собой файлы изображений, а также иметь метку времени и несколько базовых полей (размер, метрики, идентификаторы объектов в других базах данных и тому подобное), но основная цель базы данных - хранить картинки.

Мы хотели бы иметь возможность хранить данные в базе данных некоторое время, порядка нескольких месяцев.Поскольку данные поступают, возможно, каждые несколько минут, количество хранимых BLOB-объектов может расти довольно быстро.

На данный момент (этап разработки) мы будем использовать MySQL для этого.Мне было интересно, если MySQL является хорошим направлением, с точки зрения:

  • Возможность эффективного хранения двоичных данных
  • Масштабируемость
  • Требования к обслуживанию.

Спасибо,

Ответы [ 2 ]

1 голос
/ 03 октября 2011

MySQL - хорошая база данных, которая может обрабатывать большие наборы данных.Тем не менее, есть большая выгода в размещении всей вашей базы данных в оперативной памяти, в этом случае вся связанная с базой данных деятельность будет намного быстрее.Помещая большие и редко используемые объекты в вашу базу данных, вы усложняете задачу.

Итак, я считаю, что лучше всего использовать комбинированный подход: сохранять только метаданные в базе данных и сохранять файлы на диске как-является.Лучше хешировать каталоги, если вы говорите о 100 000 файлов, а затем сохраните файл под именем поля индекса в вашей базе данных.Например, такая структура каталогов:

00/00001.jpg
00/00002.jpg
00/00003.jpg
....
....
10/10234.jpg
10/10235.jpg

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

1 голос
/ 03 октября 2011

Я предлагаю хранить изображения на жестком диске и в вашей реализации mysql поддерживать метаданные вашего изображения, включая имя файла (возможно). Таким образом, ваш скрипт может легко забрать его с локального жесткого диска.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...