我在MySQL上使用UPDATE时性能非常差,我的更新声明非常基本,如:
UPDATE `tbl_name`
SET `field1` = 'value1', `field2` = 'value2' .. `fieldN` = 'valueN'
WHERE `tbl_name`.`id` = 123;
值很少(15),所有TEXT类和WHERE条件只是一个使用id。 值是JSON字符串(但这不应该打扰到MySQL,它应该将它们视为纯文本)。
在“tbl_name”中我的记录很少(大约4k)。
问题是执行此UPDATE语句我得到了8秒的执行时间(取自MySQL慢查询日志)。
我在EC2高CPU中等运行时独自运行MySQL,我认为这些表现非常“不正常”,我期望更多的性能。
你有任何想法调查这个问题吗?
**更新** 谢谢你的快速答案,表是InnoDB,id是PRIMARY,UNIQUE。值为TEXT(非varchar)
** UPDATE bis ** 不,id是一个整数,所有其他字段都是TEXT
答案 0 :(得分:1)
由于MySQL在版本5.6.3之前不支持EXPLAIN UPDATE
语句,因此我们对此查询非常盲目。试试USE INDEX
声明......
我在我的服务器上启动了相同的功能。一切都很好,有15个TEXT
字段和4096行非常随意的文本。 <{1}}和USE INDEX(PRIMARY)
语句都可以。
所以,我想,你的SQL服务器,安装包等等都有问题,而不是查询......