繁体   English   中英

简单的MySQL UPDATE查询-非常低的性能

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM