<plug>
Just like to mention that http://www.blobstreaming.org was created to
solve this problem in MySQL.
The Launchpad project is here: https://launchpad.net/pbxt
</plug>
On Feb 16, 2010, at 3:23 PM, Johan De Meersman wrote:
On Mon, Feb 15, 2010 at 10:53 AM, Martijn Tonies
<m.ton...@upscene.com>wrote:
databases are made for storing data - it saves you on both database
and PHP
requests, as (from a web point of view) you can't return the image
data
inside your HTML - it requires a second HTTP call. Filesystem image
serving,
Doesn't an image always required additional http calls from the
<IMG> tag?
Yes, that's what I'm saying. However, there's a significant difference
between an HTTP call that only needs to pump a file on to the
network, and
an HTTP call that needs to start a PHP process that then in turn
needs to
connect to the DB, which then needs to parse and execute a query.
Offloading static files (images, css, whatnot) to a separate server
that
runs a lightweight, threaded httpd without PHP and whatnot compiled
in, also
means that you'll need less hardware to serve the same amount of
requests -
our PHP machines typically run 400 apache processes, but a static
server on
the same hardware could easily serve a few thousand threads -
suddenly it's
not memory/cpu but disk/network bandwidth that becomes your
bottleneck.
If you do go for BLOBs, though, for god's sake keep them in a
separate
table, lest you fragment your datafiles. Split records are a
disaster for
performance.
I agree -for MySQL-, but this is a MySQL limitation!! Not a DBMS one.
True. I think (but am too lazy to verify) that even in MySQL this is
mainly
an issue with MyISAM, not InnoDB. Given how MyISAM is the default
engine,
though, I thought it worthwile to mention.
Separate LOB storage still leaves the overhead of query parsing and
other
generic DBMS stuff which isn't there on a filesystem, though, not to
mention
that each image requests takes up a database connection for as long
as it
takes to transfer the (potentially huge) data. Don't forget that in a
well-tuned database, network transfer is often a significant part of
your
total connection lifetime for select statements.
--
Bier met grenadyn
Is als mosterd by den wyn
Sy die't drinkt, is eene kwezel
Hy die't drinkt, is ras een ezel
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/mysql?unsub=arch...@jab.org