I've been in the process of reviewing the pros and cons of storing binary data (e.g. image files) either in blob fields in a database (presumably MySQL) vs. the filesystem of a server. I'm aware there are some concerns of security, but I'm mainly interested in performance at present.
I could easily ask you a million questions on the topic, but for brevity's sake I'll keep it down to two general ones plus a very specific one:
1) First off, precisely rather than running you down with a million questions on the topic, is there any good documentation resource you recommend I look up to better understand the issues at stake? If anything, I'd like to be able to make more educated questions. I have DuBois' book at hand, so I could also look there if you point me to a particular section (book is rather large!).
2) Do you have any general "words of wisdom" of your own on the topic? Like, what side do you take? What has your experience been like? what would you recommend under a given set of circumstances?
3) As for the specific question I have: one arguably interesting pro I've heard from people advocating filesystem storage for binary data is browser side caching; whenever a file is (re)requested, the web server can stat the file and determine if it needs to re-send it to the client browser, depending on its cache; needless to say, this may save up quite a bit of bandwidth for a busy site. Is something similar possible when the binary data is being stored in the database? I don't see a way in which a cheap operation such as stat could be performed on a blob for said cache comparison to take place. In case this is true and filesystem advocates do win the points on this one, is there something of a related nature (caching / performance / saving bandwidth / etc) that database storage has over filesystems?
May 14, 2008 3:45 PM
May 16, 2008 3:21 PM