For age range I have learned to not store images around the database, or any large BLOB for your matter. As I can realise why the databases aren't/were not efficient for your I never understood why they could not. Basically can put personal files somewhere and reference it, why could not the database engine perform the same. I am glad Damien Katz pointed out it on the recent Stack Overflow podcast and Joel Spolsky and Shaun Atwood, a minimum of quietly, agreed.
I have been reading through hints that Microsoft SQL Server 2008 should have the ability to handle BLOBs efficient, is the fact that true? If that's the case, what's there preventing us from just storing images there and eliminating one problem? One factor I'm able to think about is the fact that as the image could be offered with a static web server very rapidly whether it's personal files somewhere, when it is within the database it needs to travel in the database to the net server application (which can be reduced compared to static web server) after which it's offered. Should not caching help/solve that last problem?
Yes, it's correct, SQL Server 2008 just implemented an element such as the one you mention, it's known as a filestream. And it is a good argument indeed for storing blobs inside a DB, if you're certain you will simply desire to use SQL Server for the application (or are prepared to spend the money for cost either in performance or perhaps in creating a similar layer on the top from the new DB server). Although I expect similar layers will begin to appear when they don't already exists for different DB servers.
Of course an amount the actual benefits be rely on the specific scenario. For a moment serve plenty of relatively static, large files, than the scenario plus caching will most likely be the greatest option thinking about a performance/manageability combo.
This white paper describes the FILESTREAM feature of SQL Server 2008, which enables storage of and efficient use of BLOB data using a mix of SQL Server 2008 and also the NTFS file system. It covers options for BLOB storage, setting up Home windows and SQL Server for implementing FILESTREAM data, factors for mixing FILESTREAM along with other features, and implementation particulars for example partitioning and gratifaction.
Just since you can make a move does not mean you need to.
Should you worry about efficiency you will still not likely do for just about any sufficiently massive file serving.
Also it appears such as this subject continues to be heavily talked about...
- Exact Duplicate: User Images: Database or filesystem storage?
- Exact Duplicate: Storing images in database: Yea or nay?
- Exact Duplicate: Should I store my images in the database or folders?
- Exact Duplicate: Would you store binary data in database or folders?
- Exact Duplicate: Store pictures as files or or the database for a web app?
- Exact Duplicate: Storing a small number of images: blob or fs?
- Exact Duplicate: store image in filesystem or database?