首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我们应该显式地锁定MyISAM表还是它是隐式的.?

我们应该显式地锁定MyISAM表还是它是隐式的.?
EN

Database Administration用户
提问于 2013-12-04 12:51:13
回答 2查看 609关注 0票数 0

MyISAM表是否会自动锁定每个select或insert语句的表.

我的意思是,如果我以select * from tablename的形式查询数据库,那么MySQL引擎首先会自动锁定它,并在显示结果后解锁它,还是必须先显式地提到锁表名读取,然后读取数据…?

我对此表示怀疑,因为我们有一个缺少行的数据库,大约每秒钟插入或更新大约50-100行。在插入或更新时,我们从不使用lock语句,并且仍然没有出现任何并发问题。

EN

回答 2

Database Administration用户

发布于 2013-12-04 17:30:24

MyISAM只锁定插入、更新和删除(a.k.a )。( DML)

(这些问题每次都会发出完整的表锁(请参阅关于锁定粒度的MyISAM文档)

选择get被这些语句阻塞。

例外是带有并发性的INSERT。

执行显式锁是不必要的,尽管您可以自由地这样做。

您可能需要检查应用程序是否有连接失败或DML失败。

票数 1
EN

Database Administration用户

发布于 2013-12-04 23:33:39

另外,在MySQL默认日志(如mysqld.log、慢速查询日志、二进制日志记录)中可以找到很好的信息,在执行查询‘显示状态’之后,变量(Table_locks_waited)将指示是否存在并发问题。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/54426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档