2010-07-09 4 views
1

기본적으로 로그가 포함 된 MyISAM 테이블이 있습니다. 시스템 클러스터는 INSERT을 초당 50 개의 속도로 단일 테이블에 기록하지만 동일한 테이블은 웹 응용 프로그램에서 SELECT을 가져 와서 색인을 생성하여이를 수용합니다. 하지만 UPDATE 또는 DELETE이 없습니다.특정 MyISAM 테이블에 대해서`INSERT`가 병행되고 있는지 확인하십시오.

그래서 내가 수집 한 것으로부터 동시 삽입을 사용해야합니다. (맞습니까?) MyISAM은 보통 여분의 작업없이이 작업을 수행합니다. (맞습니까?)

하지만 찾을 수없는 것은 에 주어진 INSERT이 동시에 처리된다는 것을 의미합니다. 전역 변수 concurrent_insert2으로 설정할 수는 있지만 전 세계적으로 설정하지는 않을 것입니다.

그래서 내 질문은 :

  • 나는 동시 삽입을 보장하기 위해 누락 어떤 방법이 있나요?

  • 그렇지 않은 경우 테이블이 동시 삽입 요구 사항을 충족하는지 확인할 수있는 명령이 있습니까? (테이블에 구멍이 있는지 여부를 아는 것만으로도 충분하다고 생각합니다.) 테이블을 모니터링 할 수있게되어 정착하기 때문입니다.

  • 그리고 궁금한 점이 있는데, 이런 종류의로드를 더 잘 처리 할 수있는 다른 데이터베이스 시스템이 있습니까? 그럴 경우에는 NoSQL 솔루션을 사용할 수 있습니다. Ruby와 C에서 이야기 할 수있는 한.

답변

1

왜 concurrent_insert = 2를 전역으로 설정 하시겠습니까? 그것은 당신이 원하는 것을 줄 것입니다. 당신이 MyISAM 테이블의이 유형 고려할 수 있습니다

또 다른 옵션은 INSERT 지연 : 내가 원하지 않는 것을 고려하는 다른 데이터베이스와 테이블이 있습니다 http://dev.mysql.com/doc/refman/5.1/en/insert-delayed.html

+0

. 나는 'DELAYED'포인터를 좋아한다. 감사! –

관련 문제