mysql update 需要1秒多

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql update 需要1秒多相关的知识,希望对你有一定的参考价值。

谁知道什么问题吗?怎么解决?
我单独更新一条只需要0.75ms

完整的sql语句是什么?数据库有多少记录?
比较大的可能是:数据量较大,而且update语句中的where子句涉及的字段没有索引。追问

update ipads set pro='安徽',city='蚌埠市' where num1='3738110976' ;
update ipads set pro='安徽',city='六安市' where num1='3738110464' ;
update ipads set pro='安徽',city='合肥市' where num1='3738109952' ;
update ipads set pro='山东',city='青岛市' where num1='3738099712' ;

直接更新的,做多的时候更新一条要7秒多。表没索引。有32万条数据

追答

试试对num1这一列做索引,应该可以解决。
create index idx_num1 on ipads (num1);

参考技术A 设置num1为索引就行

mysql优化从17秒多到1秒多。怀疑人生

一段MySQL,大概是这样

set @bl=\'value\'; #定义变量 子查询1 子查询2 子查询3的where条件都用到了

select ...
from(
   #子查询1(用到@bl)
   union
    #子查询2(用到@bl)
   union
    #子查询3(用到@bl)
    
)
left join(子查询4)

 

结果查询用了17s:

然后分别执行子查询,结果最慢的只有1s多,我就不淡定了,笛卡尔积也不能这么卡啊

然后反手就是去掉变量,直接赋值的操作,即将子查询中用到的变量@bl 都改成了直接的字符串值,再执行,擦只有1s多:

 

怀疑人生!!!原因日后再分析吧,项目时间紧,先记下来

 

以上是关于mysql update 需要1秒多的主要内容,如果未能解决你的问题,请参考以下文章

mysql 与文件系统缓存

夯实Mysql基础记一次mysql语句的优化过程

夯实Mysql基础记一次mysql语句的优化过程!

mysql中的update语句怎么写

mysql update更新带子查询的实现方式

count in mysql update mysql查询,报错支持