Engine: MyISAM? InnoDB? other?
Let's see the SELECT.
select bytes from table_name where id = %d
If InnoDB, let's see the transaction, if it is part of such.
It's a single query
If InnoDB, which (COMPACT, etc) are you using.
You are asking about a single row with the 500MB, correct?
Thanks for the additional details
On Wed, Mar 13, 2013 at 1:00 PM, Rick James <rjames@stripped> wrote:
> A lot of details are missing...
> Engine: MyISAM? InnoDB? other?
> Let's see the SELECT.
> If InnoDB, let's see the transaction, if it is part of such.
> If InnoDB, which (COMPACT, etc) are you using.
> You are asking about a single row with the 500MB, correct?
> In general, each request will ask for the same row, and will be blocked at
> some level. The data will be fetched from disk and cached (radically
> differently, depending on the Engine). Each request will be satisfied --
> perhaps sequentially, perhaps simultaneously.
> The "resultset" will need to be built at some point. This will probably
> take up 500MB+ of extra RAM. This might lead to swapping or running out of
> If the SELECT needs to build a temp table, it will be MyISAM, and it will
> be on disk. But not all SELECTs need to build a temp table. This, for
> example, won't:
> SELECT myblob FROM mytable WHERE id=123;
> This probably will (if foo is not indexed):
> SELECT myblob FROM mytable ORDER BY foo;
> > -----Original Message-----
> > From: Adam Ilardi [mailto:mastaskillz33@stripped]
> > Sent: Wednesday, March 13, 2013 9:16 AM
> > To: mysql
> > Subject: Blob implementation question
> > Hello All,
> > I'm trying to grok the blob implementation. This scenario is contrived
> > to understand blobs please don't suggest I shouldn't do this. If you
> > have a theoretical machine. Ubuntu with 4 cores/4gb of ram and we'll
> > say once mysql is running 500mb of free disk space.
> > I have a 500mb blob stored in a table and 30 concurrent requests come
> > in to select the blob's bytes. How does mysql handle this situation @
> > an implementation level?
> > Would mysql buffer the blob data to the disk?
> > Would mysql keep 30 large in memory buffers for the data?
> > I'd like to know when I would be @ risk of either filling up the disk
> > or running out of ram in this situation. I'm also curious as to the
> > code level details about how blobs are read and transmitted to a
> > client.
> > Thanks,
> > Adam