mysql查询时间长或变慢

 

目录

 

数据库实例本身影响

查询长时间不返回

等MDL锁

等flush

等行锁

查询慢


数据库实例本身影响

MySQL数据库本身就有很大的压力,导致数据库服务器CPU占用率很高或ioutil(IO利用率)很高,这种情况下所有语句的执行都有可能变慢。

查询长时间不返回

select * from t where id=1;

等MDL锁

使用show processlist命令查看Waiting for table metadata lock的示意图。出现这个状态表示的是,现在有一个线程正在表t上请求或者持有MDL写锁,把select语句堵住了。

等flush

 

等行锁

select * from t where id=1 lock in share mode; 

select * from t sys.innodb_lock_waits where locked_table=`'test'.'t'`\G

查询慢

select * from t where c=50000 limit 1;   

如果c字段没有加索引,只能走id主键顺序扫描,因此需要扫描5万行。

 

update c=c+1 where id =1;//执行10万次

//这个需要查很长的undo log
select * from t where id=1;
//这个读当前数据,很快
select * from t where id=1 lock in share mode;

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值