[MYSQL]简单查询也很慢?

1.被MDL写锁 block了,比如某个变更加字段 《metadata lock》

查找造成阻塞的pid  select blocking_pid from sys.schema_table_lock_waits

 

2.等待flush


查找被等待flush表的sql  select * from information_schema.processlist where id=1;

show processlist

 

3.等待行锁(读锁等待写锁)


查询谁持有写锁  select * from t sys.innodb_lock_waits where locked_table='`db`.`table_name`'

 

4.longSQL(不多说了)

 

5.一致性读

查1是一致性读,需要找到最之前的记录,需要疯狂的执行undo log。读到的值是1

<所有读操作都是从当前最新版本,然后回溯自己可见的事务ID>

查2是当前读lock in share mode,直接取最新值  读到的结果是100万1

<select加锁和update都是当前读>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值