基本的に、私はこの簡単なクエリを持っています:
UPDATE beststat
SET rawView = rawView + 1
WHERE bestid = 139664 AND period = 201205
LIMIT 1
1秒かかります。
このテーブル (beststat) には現在~1mil のレコードがあり、そのサイズは68MBです。私は4GB の RAMとinnodb buffer pool size
= 104,857,600を持っています: Mysql : 5.1.49-3
これは私のデータベースで唯一の InnoDB テーブルです (他は MyISAM です)
もちろん、私はunique key index
最高と期間を持っています:
CREATE TABLE `beststat` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`bestid` int(11) unsigned NOT NULL,
`period` mediumint(8) unsigned NOT NULL,
`view` mediumint(8) unsigned NOT NULL DEFAULT '0',
`rawView` mediumint(8) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `bestid` (`bestid`,`period`)
) ENGINE=InnoDB AUTO_INCREMENT=2020577 DEFAULT CHARSET=utf8
EXPLAIN SELECT rawView FROM beststat WHERE bestid =139664 AND period =201205 LIMIT 1
与えます:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE beststat const bestid bestid 7 const,const 1
助けはありますか?