繁体   English   中英

选择查询锁innodb表

[英]Select query locks innodb table

我正在从一个像这样的表中进行非常简单的选择

SELECT column FROM table WHERE id=5;

id是主键,所有表都使用innodb。

当我在phpmyadmin中启用分析并运行此查询时,我看到以下内容:

Status                           Time
starting                         0.000025
checking query cache for query   0.000034
checking permissions             0.000004
Opening tables                   0.000022
System lock                      0.000004
Table lock                       0.000022
init                             0.000016
optimizing                       0.000008
statistics                       0.000030
preparing                        0.000022
executing                        0.000003
Sending data                     0.000009
end                              0.000002
query end                        0.000003
freeing items                    0.000061
storing result in query cache    0.000005
logging slow query               0.000002
cleaning up                      0.000002

第二次我运行相同的查询,因为查询被缓存,所以得到了这个:

Status                           Time
starting                         0.000022
checking query cache for query   0.000005
checking privileges on cached    0.000003
checking permissions             0.000020
sending cached result to clien   0.000055
logging slow query               0.000002
cleaning up                      0.000002

为什么像这样的简单选择查询锁定表?

请记住,主键是聚集索引(称为gen_clust_index )。 共享索引锁有可能会击中id = 5所在的索引页。

排他索引锁和共享索引锁尝试尽可能地共存于InnoDB中 ,以适应

尝试运行SHOW ENGINE INNODB STATUS\\G查找此类锁

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM