ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • InnoDB와 MyISAM 스토리지 엔진 비교
    Technique/RDBMS 2016. 4. 10. 17:47
    반응형

    MyISAM 스토리지 엔진이 인덱스를 위한 키 캐시를 가지고 있지만 데이터 자체는 운영체제의 캐시에 읜존하는 반면 InnoDB스토리지 엔진은 자ㅔ적인 버퍼 풀을 가지고 좀 더 업무 특성에 맞는 캐싱이나 버퍼링을 수행한다

    레코드 수준의 잠금 관리로 인해 동시성도 MyISAM을 훨씬 능가한다. 그나마 MyISAM의 전문 검색 기능이 myISAM을 선택할 이유를 만들어 주기도 하겠지만 사실 검색 기능 또한 제약이 심하다. 이미 전문 검색을 위해서는 스핑크스나 트리톤 같은 다른 서드파티 소프트웨어를 많이 사용하는 편이다. 혹시나 아직도 MyISAM이 빠를 것이라고 생각하는 사용자가 있다면 직접 테스트해볼 것을 권장한다.


    읽기 방법 

     성능 비교

     프라이머리 키

    ( 데이터 파일 읽기 포함 )

     InnoDB가 6-9% 정도 빠름

     보조 인덱스

    ( 데이터 파일 읽기 포함 )

    64개 이하의 동시 스레드에서는 비슷함

    그이상의 동시 스레드에서는 InnoDB가 400~500% 빠름 

     보조 인덱스

    ( 데이터 파일 읽기 포함 + LIMIT 사용 ) 

    256개 동시 스레드 이하에서는 InnoDB가 25~50%빠름

    그 이상에서는 거의 비슷함 

     보조 인덱스

    ( 커버링 인덱스 )

    InnoDB가 평균 30%빠름 

     보조 인덱스

    ( 커버링 인덱스 + LIMIT 사용 ) 

     256개 동시 스레드 이하에서는 InnoDb가 80%정도 빠름

    그이상에서는 거의 비슷함 

     프라이머리 키

    ( 커버링 인덱스 ) 

    성능 차이 없음 

      프라이 머리 키 레인지 스캔

    ( 일부 범위 )

     InnoDB가 200~600%Qkfma 

     프라이머리 키 레인지 스캔

    ( 전체 범위 ) 

    256개 동시 스레드 이하에서는 InnoDB가 30%정도 빠름

    그이상에서는 MyISAM이 5%정도 빠름 

     보조 인덱스 레인지 스캔

    ( 데이터 읽기 포함 )

    동시 처리 스레드가 128개 이하에서는 성능 차이 없음

    그이상에서는 InnoDB가 600%빠름 

     보조 인덱스 레인지 스캔

    ( 데이터 읽기 포함 + LIMIT ) 

    InnoDB가 평균 10%정도 빠름 

     보조 인덱스 레인지 스캔

    ( 커버링 인덱스 )

    InnoDB가 20~30% 정도 빠름 

     보조 인덱스 레인지 스캔

    ( 커버링 인덱스 + LIMIT ) 

    InnoDB가 20~30%정도 빠름 

     풀 테이블 스캔 

    InnoDB가 20% 정도 빠름 


    이 테스트 결과를 여러분이 사용하고 있는 MySQL 서버의 성능과 비교하는 것은 무의미하다.

    데이터의 특성도 다르고 장비나 MySQL 서버의 튜닝 상태도 다르기 때문이다.

    어디까지나 기본적인 스토리지의 성능차이를 알아보기 위한 결과이다.

    반응형

    댓글

Designed by Tistory.