Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.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
Mysql 更新外键中使用的字段(增加值1000)需要很长时间_Mysql_Sql_Performance_Innodb - Fatal编程技术网

Mysql 更新外键中使用的字段(增加值1000)需要很长时间

Mysql 更新外键中使用的字段(增加值1000)需要很长时间,mysql,sql,performance,innodb,Mysql,Sql,Performance,Innodb,在我的数据库中,我有一个表消息InnoDB,它目前只有8行。架构如下: 消息:id:{type:integer,required:true,primaryKey:true,autoIncrement:true} 用户标识:{type:integer,必需:false,foreignTable:user,foreignReference:id} 发件人id:{type:integer,必需:false,foreignTable:user,foreignReference:id} 主题:{ 类型:v

在我的数据库中,我有一个表消息InnoDB,它目前只有8行。架构如下:

消息:id:{type:integer,required:true,primaryKey:true,autoIncrement:true}

用户标识:{type:integer,必需:false,foreignTable:user,foreignReference:id}

发件人id:{type:integer,必需:false,foreignTable:user,foreignReference:id}

主题:{ 类型:varchar64}

内容:{type:longvarchar}

我需要更新user\u id和sender\u id字段,因为我正在增加user.id本身。为此,我使用以下SQL:

set foreign_key_checks=0;
update message set user_id=user_id+10000 where user_id>0;
它的执行时间超过5分钟

我必须补充一点,我正在更新其他表上的user_id,我在这方面没有问题

所以我的问题是:有什么可能会如此缓慢?是不是在一个表中有两个外键指向用户?或者它可以是在用户id上的刷新索引,而在发送者id上单独刷新索引

此外:

自动提交=开启


每个表有多少行?InnoDB?迈萨姆?自动提交的价值是什么?使用BEGIN…COMMIT?@RickJames-这是一个疑问-它只有8行,AUTOCOMMIT=on,更新8行表需要5分钟。我想5分钟内没有别的东西碰那张桌子吧?在上提交一个bug。