Если вы абсолютно уверены, что ваш веб-сервер всегда будет иметь доступ к файловой системе, в которой размещены изображения, тогда идите по этому пути. Может быть.
Однако, если в какой-то момент вы считаете, что вам может понадобиться, я не знаю, создать сервер изображений, поскольку на жестком диске вашего веб-сервера заканчивается свободное пространство ИЛИ вам необходимо запустить несколько веб-серверов, избавьте себя от хлопот и сохраните их в базе данных. Трудной частью хранения в файловой системе являются требования безопасности при пересечении сети.
Кроме того, имейте в виду, что не все серверы баз данных созданы равными в этом отношении. В SQL 2008 появился тип данных FILESTREAM, который на самом деле хранит изображения в локальной файловой системе, в то же время предоставляя всем доступ на чтение / запись через сервер БД. Это дает дополнительное преимущество, позволяя запускать антивирусные сканеры для входящих файлов, когда они находятся в хранилище.
Oracle уже какое-то время располагает хорошими хранилищами файлов. MySQL? Не думаю, что хотел бы попробовать, но с тобой может быть все в порядке.
Что касается второго вопроса: сохраните миниатюру вместе с изображением. Этот процесс происходит только один раз для каждого изображения и экономит пропускную способность презентации. Использование HTML для уменьшения размера изображения на самом деле ничего не делает для клиента.