Обработка изображений требует значительных затрат (ЦП), лучше избегать их, где это возможно.
Мой совет:
Создавайте эскизы при загрузке изображений в отдельные файлы изображений, чтобы вы могли определить, когда их создавать / изменять их размер, а не во время выполнения.
Если вам нужны ссылки на миниатюры в отдельном поле базы данных или вывести его из исходного имени, все зависит от вас - оба способа работают.
Это также упрощает реализацию дополнительных бустеров производительности (например, кэширование).
Я реализовал аналогичный процесс в php-проекте, это хороший способ для масштабирования. В моем случае я создаю миниатюры каждый вечер с помощью cron, потому что загрузка системы в это время очень низкая.