MyISAM使用表级锁定,这意味着SELECT:s在INSERT/UPDATE:s正在运行时被阻塞。使用MyISAM时避免被锁定在MySQL中SELECT:s在MySQL中使用MyISAM时
为了减轻阻塞SELECT的问题:■我一直建议用这些参数配置MySQL:
low_priority_updates=1
concurrent_insert=2
什么是使用low_priority_updates=1
的缺点和concurrent_insert=2
?
MyISAM使用表级锁定,这意味着SELECT:s在INSERT/UPDATE:s正在运行时被阻塞。使用MyISAM时避免被锁定在MySQL中SELECT:s在MySQL中使用MyISAM时
为了减轻阻塞SELECT的问题:■我一直建议用这些参数配置MySQL:
low_priority_updates=1
concurrent_insert=2
什么是使用low_priority_updates=1
的缺点和concurrent_insert=2
?
这里有一个great post from the MySQL Performance Blog涵盖一些这方面
锁定优先的。默认情况下,MySQL将更新视为更高优先级的操作。您可以使用SELECT HIGH_PRIORITY或UPDATE LOW_PRIORITY 来调整,或者您可以简单地设置 low_priority_updates选项。反正 默认行为是指任何UPDATE语句 这是由长 阻止运行选择也会从这个表阻止进一步的 选择 - 他们将 不得不等待,直到更新执行 这是对SELECT等待 完成。对于和人们来说,这通常不会被计入 - “好的。我写我 脚本,所以它做短暂的更新,所以它 将不会阻止任何东西“ - 它仍然 可能会导致总块如果有长期选择运行 。
另一个post benchmarks concurrent_inserts并强调可能的缺点,尽管该职位现在是3岁。