2009-08-02 2 views
1

MyISAM은 테이블 수준 잠금을 사용합니다. 즉, INSERT/UPDATE :가 실행되는 동안 SELECT :가 차단됩니다.잠그기 피하는 방법 : MyISAM을 사용할 때 MySQL의 SELECT : s

차단 SELECT의 문제를 완화하려면 다음을들 나는이 매개 변수의 MySQL을 구성하는 것이 좋습니다했습니다 :

  • low_priority_updates=1
  • concurrent_insert=2

무엇 low_priority_updates=1를 사용하는 단점이 있고 concurrent_insert=2?

답변

2

다음은이

잠금 우선 순위의 일부를 커버하는 great post from the MySQL Performance Blog입니다. 기본적으로 MySQL은 업데이트를 우선 순위가 높은 작업으로 처리합니다. SELECT HIGH_PRIORITY 또는 UPDATE LOW_PRIORITY 을 사용하여이를 조정하거나 low_priority_updates 옵션을 간단하게 설정할 수 있습니다. 어쨌든 기본 동작은이 테이블에서 더 선택을 차단합니다 선택 실행 긴 에 의해 차단 된 모든 UPDATE 문을 의미합니다 - 그들은 이 업데이트가 완료 에 SELECT 기다리고 을 실행 될 때까지 기다려야 할 것이다. 이것은 종종 으로 간주되지 않으며 사람들은 "OK"라고 생각합니다. 나는 스크립트를 작성하여 짧은 업데이트를 수행하므로 은 차단하지 않습니다.

또 다른 post benchmarks concurrent_inserts과 가능한 단점을 강조하지만 게시물은 현재 3 세입니다.

관련 문제