То, что вы описали, звучит разумно для меня. Вы можете хранить изображения в своей базе данных, но не заметите существенного повышения производительности, и, если ваш веб-хост ограничивает размер базы данных MySQL, вы можете обнаружить, что переплачиваете за пространство базы данных.
Что касается изменения размера изображений, то выполнение этого один раз и сохранение трех копий является гораздо менее затратным в вычислительном отношении, чем создание меньших изображений один раз за запрос; однако вы можете подумать о том, чтобы браузер создавал для вас миниатюры (просто укажите тег img с src, установленным на полноразмерное изображение плюс атрибуты ширины / высоты), который позволит вам сэкономить ресурсы процессора и дисковое пространство при дорого иметь не очень красивые миниатюры (браузеры обычно масштабируют изображения для увеличения скорости при дорогом качестве).