Well, analyze if you need to create an excessive overhead into the MySQL
Server because a simple INSERT. What you must have a look is it:
- How much data this connection is delivering to MySQL's handlers?
- A word DELAYED in this case is making MySQL surfer?
Perhaps, you are sophisticating something that do not need it. Besides it,
analyzing your "log table", I imagine this table can be an Archive table
instead of MyISAM. Log tables or history tables can be controlled by Archive
Storage Engine to have more compressed data. Although, Archive Storage
Engine only supports SELECT and INSERT. Maybe, a good deal to you, get rid
of you INSERT DELAYED:
- ALTER TABLE <tbl_name> ENGINE = ARCHIVE;
2010/11/29 WLGades <WLGades@stripped>
> I'm adding a table to our site that logs all page loads. In the past, when
> I built this, I used MyISAM and INSERT DELAYED. I went back to look at the
> documentation to see if I should still do this, and saw this (taken from
> Note that INSERT DELAYED is slower than a normal INSERT if the table is not
> otherwise in use. There is also the additional overhead for the server to
> handle a separate thread for each table for which there are delayed rows.
> This means that you should use INSERT DELAYED only when you are really sure
> that you need it.
> Does that mean that I shouldn't use it if all I'm doing is INSERT
> (essentially an append-only table), with only very occasional SELECTs? In
> addition, the last time I took this approach for logging, it worked well
> until the table got to 65M+ rows, when it would crash every now and then.
> know I can archive off the table on a per month/quarter basis as well.