У меня есть приложение на c ++, которое генерирует 6x сравнительно небольших целочисленных массивов изображений в секунду. Данные представляют собой 64x48x2-мерное целое (т. Е. Сетка из 64x48 двумерных векторов, каждый из которых состоит из двух чисел с плавающей запятой). Это работает до ~ 26 КБ на изображение. Приложение также генерирует временную метку и некоторые функции, описывающие данные. Я хочу сохранить метку времени и функции в столбце БД MySQL, для каждого кадра. Мне также нужно хранить исходный массив в виде двоичных данных, либо в файле на диске, либо в виде поля большого двоичного объекта в базе данных. Предположим, что приложение будет работать более или менее без перерыва, и что я придумаю способ архивирования данных старше определенного возраста, чтобы хранение не стало проблемой.
Какие здесь компромиссы для больших двоичных объектов, файлов на диске или других методов, о которых я даже не думаю? Мне не нужно запрашивать двоичные данные, но мне нужно запрашивать другие метаданные / функции в таблице (у меня определенно будет индекс, построенный по временной метке) и извлекать двоичные данные. Изменится ли уравнение, если я сохраню несколько кадров в одном файле на диске по сравнению с одним кадром на файл?
Да, я прочитал Бинарное хранилище MySQL с использованием файловой системы BLOB VS OS: большие файлы, большие объемы, большие проблемы и Делать или не делать: Хранить изображения в базе данных , но я думаю, что мой вопрос отличается, потому что в этом случае будут миллионы бинарных файлов одинакового размера. Я не уверен, как производительность влияет на поддержание такого большого количества маленьких файлов в файловой системе по сравнению с хранением такого количества файлов в столбцах BLB BLOB. Любая перспектива будет оценена.