Хранение изображений в сетках MongoDB
Я обсуждаю вопрос о хранении изображений в GRIDFS Mongo или в облачной файловой системе. Я склоняюсь к облаку по нескольким причинам.Используемый язык - PHP на сервере Nginx.
Хранение изображений в GRIDFS увеличивает размер базы данных. Поэтому больше базы данных должно быть в памяти, и я буду тратить больше времени/денег на управление серверами, когда дело доходит до таких вещей, как сегментирование.
Извлечение изображения из GridFS занимает больше времени чем облако, потому что я должен а) Запросить изображение, используя идентификатор б) считайте изображение в память в) используйте заголовок php для отображения изображения
Облако было бы лучше, потому что это URL-адрес изображения непосредственно в облаке.
Звучат ли эти причины обоснованно или мне следует двигаться в другом направлении со своим мышлением?
1 answers
Это не совсем так.
Хранение изображений в GRIDFS увеличивает размер базы данных. Поэтому больше базы данных должно быть в памяти, и я буду тратить больше времени/денег на управление серверами, когда дело доходит до таких вещей, как осколки.
Mongodb gridfs разбивает огромные файлы на куски, и только они будут загружаться и обслуживаться (каждым куском) по запросу. Да, определенно, это займет больше памяти, чем файловая система. Это все компромиссы при использовании хранилищ данных в памяти.
Извлечение изображения из GridFS занимает больше времени, чем облако, потому что мне нужно а) Запросить изображение с помощью идентификатора б) прочитать изображение в память c) используйте заголовок php для отображения изображения
Как я уже говорил в своем предыдущем пункте, он будет загружаться в память в первый раз. таким образом, у вас не будет особых проблем с производительностью, фактически это будет выигрыш, так как он обслуживается с оперативной памяти, а не с диска. Но если вы не тем не менее, я бы рекомендовал кэшировать изображения в nginx. так что это не придет к монго после первого.