To summarize:
Database Storage:
Pros:
- Assures referential integrity
- Easier backup strategy
- Easier clustering (database cluster)
Cons:
- Higher cost in memory usage and storage
- Hard to scale
- Additional code must be written to support HTTP caching
- Requires a database and associated querying code
File System Storage
Pros:
- Low memory footprint (more efficient)
- Storage equal to file size
- Easy retrieval and storage
- Allows the web server to control caching
Cons:
- Referential integrity not assured
- Backups are not always in sync with database backups
- Requires additional backup strategy
If referential integrity of your images is important, store them in the database. The advantages is that a backup of your database will always means that your rows and images are in sync. It does mean though that it is a bit more costly resource wise to store and retrieve.
If the images themselves are not that important, store them as files. It allows for fast and simple retrieval and storage. The downside of using files though is that your backup strategy becomes more complicated and your files will not always be in sync with your database rows.
I personally always store them in the database. For me, the rewards are greater then the cost. This is hardly always the case though and you should look at your application requirements to see which is best for you.
Some large websites are using BLOBs to store their website content. Flickr's use of BLOBs is actually well documented. To answer your question though, file storage is more memory efficient than database storage.