gpt4 book ai didi

mysql - 为什么 innoDB 会锁定表

转载 作者:行者123 更新时间:2023-11-29 03:00:57 26 4
gpt4 key购买 nike

我在 AWS 上使用 innoDB。我的日志中不断收到大量以下消息:

等待表级锁

我以为 innoDB 只做行级锁。我的代码中没有任何锁表。有谁知道为什么会发生这种情况?

最佳答案

InnoDB 表锁出现的原因有以下几点:

1) 如果 innodb_table_locks = 1(默认值)和 autocommit = 0,InnoDB 知道表锁,并且 InnoDB 之上的 MySQL 层知道行级锁.

您应该设置 innodb_table_locks=0 并重新启动 MySQL 服务器。

2) 在表上初始化先前指定的 AUTO_INCREMENT 列时,InnoDB 在与 AUTO_INCREMENT 列关联的索引的末尾设置排他锁。在访问自增计数器时,InnoDB 使用特定的AUTO-INC 表锁模式,锁只持续到当前 SQL 语句的末尾,而不是整个事务的末尾。当持有 AUTO-INC 表锁时,其他客户端无法插入到表中。

您也可以引用这篇博文:http://www.mysqlperformanceblog.com/2012/07/31/innodb-table-locks/

关于mysql - 为什么 innoDB 会锁定表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23772793/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com