在sesseion1  

操作

select  a.* ,b.*

from a inner join b on a.col01!=b.col01 

where 

order by a.col02 desc ,b.col02 desc , b.col03 desc;

session 2 :

create index idx01  a on (col01 desc);

或者 

drop  index idx01 on a ;

都会是一直等待的状态,通过show processlist查询为 2个session 的状态均为:  Waiting for table metadata lock  

原因分析:在查询中,会有表元数据的锁,而新增索引需要表元数据的锁,所以一直在等待

结论:

在select 语句未完成之前,索引操作是一直等待的状态。 

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐