It is better to store images in a DB....if you are a rich man. I say this because storing images in a database can increase the database size very quickly. But if you have the money to purchase more database space whenever you need it...then this is the way to go. Databases allow you to quickly relate records to one another. If a picture is related to a product, you can retrieve that information very quickly and reliably.
Another important thing about storing images in DB is that when you back up your system, all of your images are backed up as well. Your whole system is in one convenient spot.
I think I'm right in saying that nop stores the main image in the database, but all the thumbnails for the site (including the main product image) are stored in and retrieved from the filesystem anyway - so (and please contradict me if i'm wrong) it seems to me that there is no speed advantage in storing the image in the database.
You can also backup your photos from admin in the same place you backup the database (system/maintenance).
As a personal preference, I choose to store images in the file system
( you can set this in admin configuration --> all settings store images in db false )
purely as a consideration to cost of a large database.
nopCommerce stores images in the database and the ImageManager creates caches of the images on the hard disk. it means that if you decided to change the size of a thumb, you wouldn't need to re-process the images as nop takes care of it all.
So, what is the difference? If image is cached, it means that it is pulled from the DB to the HDD anyways? Seems like it it the first load that is fast-er, but the rest would be the same speed?