I’m currently a student and I aspire to become a great web developer 🙂
I want to work on some ‘practice’ projects that is capable of storing/retrieving images or any type of file(.doc,.xcl,.txt, etc.). Some are saying that it’s better to store img/any file in a file system as opposed to saving it inside the database.
I would like to know the pros and cons of both side.
I would also like to know what’s the best data type for storing imgs/files in MySQL
(I’m currently using longblob for PHP-MySQL)For saving imgs
I would also like to know what’s the best data type for storing imgs/files in SQL Server
(I’m currently using Asp.net Varbinary(max) for SQL Server 2008)For saving imgs
Lastly,I’m just curious on how websites like facebook and other big web applications store imgs and files.
Sir/Ma’am, your answers would be of great help and be very much appreciated. Thank you++
Pros: Storing in database
Files are saved “forever”
Can restrict access to the real file more easily
You can, technically, check for duplicate files.
You are not keeping the files on drive, so it can be faster to access for the server
Less files on your server is considered “better” and more organized
“one file for everything”
Cons:
If site is up but database is not, file will be invalid (through “direct” linking)
Some databases that cannot be reconfigured only allow blobs to be of a certain size limit (a few mb), therefore making it so that really large images cannot be stored (but can be separated)
More data becomes stored in memory when loading file to (to a variable); similar to the problem above, very large images can slow down your server.
Some files may be of different character encoding, and thus storing and/or retrieving files may corrupt the original file. I am not sure if this is real problem, but I think it was.
I personally suggest you to do not store files on my database anymore because of the cons.