Хранить их в базе данных и извлекать их для каждого из них и отображать с помощью PHP - не очень хороший способ, но выбросить все изображения в один каталог тоже нет.
Вы можете использовать гибридный подход.
Храните изображения в иерархии папок (согласно любой схеме, которую вы определили как подходящую для вашего приложения). Сохраните полный путь к каждому изображению в вашей базе данных.
В фоновом задании имейте эскизы полученных изображений (скажем, с помощью ImageMagick), имена файлов которых немного отличаются от самих изображений (например, добавьте «thumb-» на лицевой стороне), но которые хранятся рядом с реальными изображениями. У вас может быть поле в базе данных для каждого изображения, что означает «Мой эскиз готов, поэтому, пожалуйста, включите меня в галереи».
Когда вы получите запрос на галерею, нарежьте и нарежете группу изображений, используя поля базы данных, а затем создайте фрагмент HTML, который ссылается на соответствующие эскизы и пути к изображениям.
Edit:
То, что говорит Аарон Ф., важно, когда вам нужно обработать очень большое количество запросов. Разделение данных изображения / sql - хороший путь к масштабируемости. Вам нужно будет посмотреть на шаблоны доступа в вашем приложении, чтобы определить, где находятся точки разделения. Еще раньше вы можете кэшировать сгенерированный HTML-код для галерей, чтобы уменьшить нагрузку на SQL.