首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么MySQL禁止存储过程中的锁表?

问为什么MySQL禁止存储过程中的锁表?
EN

Database Administration用户
提问于 2018-08-11 21:44:24
回答 1查看 7.3K关注 0票数 5

我已经阅读了MySQL参考手册的几个部分,虽然它反复声明LOCK TABLES不能在存储过程中使用,但我从未找到对其背后的推理的解释。

EN

回答 1

Database Administration用户

发布于 2018-08-28 23:49:24

我也找不到“这里是为什么”的声明,但是通过阅读下面链接上的条目,它似乎是以下内容的组合:

  • 首选最佳做法:使用SELECT...FOR更新
  • 行级锁定优于表级锁定的首选项
  • 与并发性相关的性能和行级锁定的更细粒度
  • MySQL存储过程论坛上出现的其他替代方法包括切换存储引擎(尽管仍然不会将锁表语句转换为SP),如果表级锁定确实是合理的,或者使用事务而不是表级锁定。这些选举可能可以归结为原问题中没有出现的其他考虑因素。
  • 还看到了一条关于存储过程的声明,声明“任意SQL语句”是不允许的。我没有寻找“任意SQL”的列表。

祝好运

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

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

复制
相关文章

相似问题

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