MySQL은 튜닝 A (스토리지 엔진 이노,의 MyISAM)

  • ISAM의 MyISAM 스토리지 엔진, 그것의 확장을 기반으로, 그것은 트랜잭션을 지원하지 않습니다.
    InnoDB는 MySQL의 일 제출, 롤백 및 다른 것들, 보안 스토리지 엔진을 제공합니다.

  • 의 MyISAM 테이블 잠금을 사용합니다. 작은 테이블 수준 잠금 오버 헤드, 빠른 잠금, 큰 잠금 단위, 높은 충돌 확률, 교착없이 낮은 동시성.
    InnoDB의 테이블 수준 잠금 및 행 수준 잠금을 지원, 기본값은 행 수준하기 위해 잠금을. 크고 느린 잠금 행 수준 잠금 오버 헤드, 작은 크기, 충돌, 높은 동시성의 낮은 확률을 잠금, 교착 상태가 될 것입니다.

  • 의 MyISAM 직렬 판독되고, 동일한 테이블이 로크를 획득하는 프로세스 우선 순위를 작성하는 것이 프로젝트 업데이트 다수 적합하지 않으며 작업 소량의 데이터보다 더 많은 판독 동작을 읽으면 동작을 조작 동시 쓰기 읽기 및 쓰기.
    완전히 InnoDB 스토리지 엔진과 MySQL의 서비스 통합, 최대 성능 디자인에서 거대한 데이터 량을 처리하는 것입니다.

  • 의 MyISAM은 외래 키를 지원하지 않습니다. MYISAM에 InnoDB의 외부 키가 들어있는 테이블의 경우 실패합니다.
    외래 키를 지원 이노 디비.

  • MyISAM 테이블 레코드의 수를 저장하지 않고, SELECT COUNT (1) XXX는에서 전체 테이블 스캔 될 것입니다.
    InnoDB는 저장합니다. 그러나, XXX에서 SELECT COUNT (1) XXX 어디 여전히 전체 테이블 스캔 될 것입니다.

  • 엔진의 MyISAM 데이터베이스 세 파일 .FRM 테이블 기억 구조 .MYD 저장 테이블 데이터 저장 .MYI 테이블 인덱스를 생성 작성 인덱스가 압축된다.
    밀접하게 묶여 데이터 이노 인덱스, 인덱스가 압축되지 않는다. 의 MyISAM으로 메모리 사용량 지수의 관점에서.

의 MyISAM 테이블 수준 잠금

   MySQL의 테이블 수준의 두 가지 방법으로 잠금 : 테이블 읽기 잠금 및 독점 쓰기 잠금 테이블을 공유했습니다.

   

   쿼리를 수행하기 전에의 MyISAM가 자동으로 작동을 잠금 해제, 테이블을 잠글 실행됩니다.

   쿼리에 영향을주지 않습니다 잠금을 읽을 수 있지만 업데이트 업데이트이 클라이언트와 다른 클라이언트를 제한합니다.
  //注:图中示例表yc_tablelock的存储引擎为MyISAM

   

   당신은 시간 데이터에서 동일한 지점에 두 문의 물론, 당신은 또한 노동 조합의 조합을 사용할 수 있도록 테이블 잠금을 사용할 수 있습니다.

테이블 yuanchong_table1을 잠글 읽어 yuanchong_table2; 
yuanchong_table1에서 colum1 선택; 
yuanchong_table2에서 colum2 선택; 
테이블 잠금 해제;

   잠금을 쓰기 자체를 실행하는 작업을 읽고 쓸 수 있지만 다른 클라이언트가 읽기 및 쓰기 작업을 제한합니다.

   

InnoDB의 테이블 잠금 및 행 수준 잠금

   공유 잠금 (잠금을 읽기) : 다른 클라이언트가 읽을 수 있지만 쓸 수 없습니다. 다른 클라이언트는이 배타적 잠금에 몇 줄을 기록 할 수 없습니다 만, 잠금을 공유 할 수 있습니다.
   공유 잠금에 쓰기 : 잠금 모드보고이 콘텐츠 공유에

 yuanchong_table SELECT * FROM 경우 ID> 공유 모드에서 60 잠금;

   독점 잠금 (쓰기 잠금) : 다른 클라이언트가 더 쓰기 작업을 읽을 수 있도록하지 마십시오. 단독 잠금 및 공유 잠금에 몇 줄에 다른 클라이언트 없습니다.
   문구에 독점 잠금 : 업데이트에 대한

yuanchong_table SELECT * FROM 경우 ID> (60) 에 대한 업데이 트;

   교착 상태 : 잠긴 일들이 B 것들이 라인 6-10 잠금, 1-5 라인. 잠금 요청 라인 6-10 일, 차단. B 일들이 요청 라인 1-5, 장애물을 잠급니다. 잠금 테이블을 운영하고, 자유롭게 테이블 잠금 교착 상태가 존재한다.

   참고 :
  • 행 잠금 그렇지 않으면 전체 테이블을 잠글 것, 달성하기 위해 인덱스가 있어야합니다.
  • 두 가지가 같은 인덱스를 잠글 수 없습니다.
  • 자동으로 단독 잠금을 추가, 업데이트 것들이 기본에있을 것입니다, 삽입, 삭제.

 

 

 

 

 

 

추천

출처www.cnblogs.com/mzhaox/p/11297861.html