Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 慢速MySQL更新查询_Php_Mysql_Query Optimization - Fatal编程技术网

Php 慢速MySQL更新查询

Php 慢速MySQL更新查询,php,mysql,query-optimization,Php,Mysql,Query Optimization,我有一个包含400000行的mysql表 每当我运行PHP脚本更新一行时,大约需要3-4秒 如何优化更新查询 UPDATE `weakvocab` SET `times` = times+1, `wrong` = wrong+1, `mtime` = 1284369979 WHERE `owner` = 'owner_name' AND `vocID` = 'ID_number' AND `type` = 'type_name'; 这个查询是关于在回答一个问题后更新用户数据的,所以我需要一个快

我有一个包含400000行的mysql表

每当我运行PHP脚本更新一行时,大约需要3-4秒

如何优化更新查询

UPDATE `weakvocab` SET `times` = times+1, `wrong` = wrong+1, `mtime` = 1284369979 WHERE `owner` = 'owner_name' AND `vocID` = 'ID_number' AND `type` = 'type_name';
这个查询是关于在回答一个问题后更新用户数据的,所以我需要一个快速查询,以便在加载下一个问题时为用户提供更好的体验


谢谢,

您可以尝试在
(所有者名称、vocID、类型)
上添加索引,以便更快地找到要更新的记录。

您的WHERE条件中的列是否已索引?将更新更改为SELECT以查看Mysql如何执行它:

EXPLAIN SELECT * FROM `weakvocab` WHERE `owner` = 'owner_name' AND `vocID` = 'ID_number' AND `type` = 'type_name';

并将结果粘贴到此处

无需解释的选择速度约为0。2s@bn问题不在于解释的速度,而在于结果。@bn
EXPLAIN
将显示您是否需要添加任何索引,如@Mark Byers在其回答中提到的。如何在上添加索引,这会影响现有数据吗?