MySQL - хорошая база данных, которая может обрабатывать большие наборы данных.Тем не менее, есть большая выгода в размещении всей вашей базы данных в оперативной памяти, в этом случае вся связанная с базой данных деятельность будет намного быстрее.Помещая большие и редко используемые объекты в вашу базу данных, вы усложняете задачу.
Итак, я считаю, что лучше всего использовать комбинированный подход: сохранять только метаданные в базе данных и сохранять файлы на диске как-является.Лучше хешировать каталоги, если вы говорите о 100 000 файлов, а затем сохраните файл под именем поля индекса в вашей базе данных.Например, такая структура каталогов:
00/00001.jpg
00/00002.jpg
00/00003.jpg
....
....
10/10234.jpg
10/10235.jpg
В этом случае в ваших каталогах не будет слишком много файлов, и доступ к файлам будет быстрым и простым.Конечно, если ваш сервер базы данных распределен / избыточен, все становится более интересным, любой такой подход может или не может быть оправдан, в зависимости от нагрузки, требований избыточности / отработки отказа и т. Д.