首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用MySQL时避免在MyISAM中锁定选择:s

使用MySQL时避免在MyISAM中锁定选择:s
EN

Stack Overflow用户
提问于 2009-08-02 09:38:36
回答 1查看 2.8K关注 0票数 1

MyISAM使用表级锁定,这意味着在INSERT/UPDATE:s运行时,SELECT:s被阻塞。

为了缓解阻塞SELECT:s的问题,建议我使用以下参数配置MySQL:

  • low_priority_updates=1
  • concurrent_insert=2

使用low_priority_updates=1concurrent_insert=2有哪些缺点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-08-02 09:47:21

这里有一个来自MySQL性能博客的很棒的文章,它涵盖了其中的一些内容

锁优先级。默认情况下,MySQL将更新视为更高优先级的操作。您可以使用SELECT HIGH_PRIORITY或UPDATE LOW_PRIORITY来调整这一点,也可以简单地设置low_priority_updates选项。无论如何,默认行为意味着被长时间运行的select阻塞的任何UPDATE语句也将阻止来自该表的进一步选择--它们必须等到UPDATE正在执行,而后者正在等待SELECT才能完成。这往往是没有考虑到的,人们会想--“好的。我写我的脚本,所以它会做简短的更新,这样它就不会阻塞任何东西“--如果有长的选择在运行,它仍然会导致总的阻塞。

另一个镶片并突出了可能的缺点,尽管这篇文章现在已经3年了。

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

https://stackoverflow.com/questions/1218531

复制
相关文章

相似问题

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