Значит так, сперва дисклеймер. Жирная система, хорошо (смею надеяться) настроенный MySQL-сервер, который обеспечивает тысячи INSERT'ов в секунду на таблицах с миллионами записей. Прекрасно работают и InnoDB, и MyISAM. Никаких нареканий.
Но!
Собственно проблема.
Есть простенькие таблицы, вида:
CREATE TABLE `warnings` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) DEFAULT '0',
`user_name` varchar(255) NOT NULL,
`time` int(11) NOT NULL DEFAULT '0',
`score` int(11) NOT NULL DEFAULT '0',
`type_id` int(3) NOT NULL,
`moderator_id` int(11) NOT NULL DEFAULT '0',
`moderator_name` varchar(255) NOT NULL,
`uri` varchar(255) NOT NULL DEFAULT '',
`comment` text NOT NULL,
`warn_class_id` int(10) DEFAULT '0',
`warn_object_id` int(10) unsigned DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `user_id_2` (`user_id`,`warn_class_id`,`warn_object_id`),
KEY `uri` (`uri`),
KEY `moderator_id` (`moderator_id`),
KEY `score` (`score`),
KEY `time` (`time`),
KEY `user_id` (`user_id`),
KEY `warn_class_name_id` (`warn_class_id`),
KEY `warn_class_object_id` (`warn_object_id`),
KEY `type_id` (`type_id`),
KEY `user_name` (`user_name`),
KEY `moderator_name` (`moderator_name`)
) ENGINE=InnoDB AUTO_INCREMENT=9506 DEFAULT CHARSET=utf8
Как видно - менее 10000 записей. Так вот, такая простая вставка:
INSERT IGNORE warnings (`user_id`,`time`,`score`,`type_id`,`moderator_id`,`moderator_name`,`warn_class_id`,`warn_object_id`) VALUES ('7854','1286095509','2','7','843','Fakir','1','2250227')
может длиться 10-80(!) секунд.
С чтением из этой таблицы никаких проблем, сколько угодно и быстро.
Внешних ключей нет.
Есть мысли, с чем может быть связано?