John Romkey <[email protected]> wrote: > On Jun 6, 2009, at 7:41 AM, Ian Docherty wrote: > > Mihai Bazon wrote: > >> Hi folks, > >> > >> I'm working on a simple CMS (actually started it for learning > >> Catalyst, > >> but the goal is to be able to maintain a few websites with it). Each > >> page is stored in DB and it can have file attachments, also stored > >> in DB > >> (content is BLOB). > >> > > I may get shot down in flames for this, but I would not personally > > put page data or attachments into the DB in the first place. I would > > put the page into the filesystem and use the DB to reference the > > file contents. This would also satisfy your cache problems since you > > can retrieve the static data directly from the filesystem. > > I agree whole-heartedly. > > There are very few drawbacks to serving directly from the filesystem > (only one I can think of, which has to do with access control to the > content), while there are several when serving from the DB, mostly > performance-related.
I am aware of the performance quirks, but I'm still a fan of holding all the content into the DB. In fact, the bigger plan is to store templates and CSS/JS files in the DB as well. MySQL blobs are pretty fast, btw. Performance should be (almost) the same as for static files if I implement a handler that (1) updates the static file from DB when it's out of date and (2) DECLINE-s the request so that Apache^W the web server itself can further serve the file. Catalyst::Plugin::Static::Simple is doing the job (not strictly what I asked though), but I'm not speaking a million requests per day. I looked at the source--it sets $c->response->body($filehandle). It's elegant, but probably slow. When the need comes, I'll figure out something faster -- but for now all I can think of is "early optimization is the root of all evil". ;-) Cheers, -Mihai _______________________________________________ List: [email protected] Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/[email protected]/ Dev site: http://dev.catalyst.perl.org/
