MyISAM使用表级锁定,这意味着在INSERT/UPDATE:s运行时,SELECT:s被阻塞。
为了缓解阻塞SELECT:s的问题,建议我使用以下参数配置MySQL:
low_priority_updates=1concurrent_insert=2使用low_priority_updates=1和concurrent_insert=2有哪些缺点?
发布于 2009-08-02 09:47:21
这里有一个来自MySQL性能博客的很棒的文章,它涵盖了其中的一些内容
锁优先级。默认情况下,MySQL将更新视为更高优先级的操作。您可以使用SELECT HIGH_PRIORITY或UPDATE LOW_PRIORITY来调整这一点,也可以简单地设置low_priority_updates选项。无论如何,默认行为意味着被长时间运行的select阻塞的任何UPDATE语句也将阻止来自该表的进一步选择--它们必须等到UPDATE正在执行,而后者正在等待SELECT才能完成。这往往是没有考虑到的,人们会想--“好的。我写我的脚本,所以它会做简短的更新,这样它就不会阻塞任何东西“--如果有长的选择在运行,它仍然会导致总的阻塞。
另一个镶片并突出了可能的缺点,尽管这篇文章现在已经3年了。
https://stackoverflow.com/questions/1218531
复制相似问题