[英]Simple MySQL UPDATE query - very low performance
一个简单的mysql更新查询有时非常慢。 这是查询:
update produse
set vizite = '135'
where id = '71238'
我简化的表结构是:
CREATE TABLE IF NOT EXISTS `produse`
(
`id` int(9) NOT NULL auto_increment,
`nume` varchar(255) NOT NULL,
`vizite` int(9) NOT NULL default '1',
PRIMARY KEY (`id`),
KEY `vizite` (`vizite`),
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=945179 ;
我使用MySQL 5.0.77,表是MyISAM。
这张表大约是752.6 MO,目前有642,442。
该数据库在专用VPS上运行,该VPS具有3Gb的RAM和4个2G的处理器。 当流量较高时,每秒不超过6-7个此类查询,但不仅如此,查询速度很慢。
首先,尝试重建索引,可能会发生查询未使用索引的情况(您可以在更新查询中看到使用EXPLAIN语句)。
另一种可能性是您在该表上有许多选择或长时间运行的选择,这会导致长时间的锁定。 您可以尝试使用复制并仅在从属数据库上执行选择查询,并仅在主数据库上执行选择查询。 这样,您可以避免在执行选择时因更新而导致的表锁定,反之亦然。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.