Simple UPDATE query with (sometime) long query times

Posted by Eric on Server Fault See other posts from Server Fault or by Eric
Published on 2012-09-17T20:32:05Z Indexed on 2012/09/17 21:41 UTC
Read the original article Hit count: 265

Filed under:
|

I run a dedicated MySQL server (2 cores, 16GB RAM) serving 100-200 requests per second. It is getting sluggish during peak traffic and I have a hard time optimizing the server. So I'm looking for some ideas now that I have done lots of Innodb fine-tuning with the "TUNING PRIMER"

The query that now generates most slow queries is the following (see result from mysqldumpslow):

Count: 433  Time=3.40s (1470s)  Lock=0.00s (0s)  Rows=0.0 (0),
  UPDATE user_sessions SET tid='S' WHERE idsession='S'

I am very surprised to have so many long queries for such a simple query with no locking. Fyi, the table is InnoDB and has 14000 rows. It contains all active sessions on the site with approx 10 UPDATE and SELECT hits per second. Here is its structure:

CREATE TABLE `user_sessions` (
 `personid` mediumint(9) NOT NULL DEFAULT '0',
 `ip` varchar(18) COLLATE utf8_unicode_ci NOT NULL,
 `idsession` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
 `datum` date NOT NULL DEFAULT '0000-00-00',
 `tid` time NOT NULL DEFAULT '00:00:00',
 `status` tinyint(4) NOT NULL DEFAULT '0',
 KEY `personid` (`personid`),
 KEY `idsession` (`idsession`),
 KEY `datum` (`datum`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

Any ideas?

© Server Fault or respective owner

Related posts about mysql

Related posts about innodb