ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 스토리지 엔진 InnoDB vs MyISAM
    DataBase/Mysql 2024. 11. 4. 22:23
    반응형

    0. 들어가면서

    Mysql을 사용하기전 서비스에 가장 최적화된 스토리지엔진이 무엇인지 탐구한 결과를 정리해보았다.

    여기선 자주쓰는 InnoDB와 MyISAM를 비교해보겠다.

     

    1. InnoDB

    특징

    • 트랜잭션 지원: ACID 특성을 만족하여 데이터 무결성 보장
    • 외래 키 지원: 관계형 데이터베이스의 장점을 활용 가능
    • 행 수준 잠금: 동시성 처리에 유리하여 다중 사용자 환경에서 성능 우수
    • 충돌 복구 기능: 예기치 않은 오류 발생 시 데이터 복구가능

    장점

    • 데이터의 일관성무결성이 중요한 애플리케이션에 적합합니다.
    • 동시 읽기/쓰기에 강함: 블로그의 다중 사용자 접근 시에도 안정적인 성능을 제공합니다.

    단점

    • 상대적으로 메모리 사용량이 높다  ( 당연하다.. 무결성 보장과 성능을 어느정도 끌어올려야하니 해당하는 데이터를 캐시값으로 가지고있게된다 )

    2. MyISAM

    특징

    • 트랜잭션 미지원: 데이터 무결성 보장안함
    • 외래 키 미지원: 외래키를 지원하지 않음
    • 테이블 수준 잠금: 동시성 처리에 한계가 있음

    장점

    • 읽기 성능이 뛰어나며, 읽기 위주의 작업에 적합
    • 디스크 공간 절약: 데이터 저장 효율이 높음 ( 트랜잭션 등 무결성과 관련된 데이터가 없으니 저장구조가 단순화되고 용량이 적어진다 )

    단점

    • 데이터 무결성 보장 어려움: 중요한 데이터 저장에 부적합
    • 동시 쓰기 성능 저하: 다중 사용자가 쓰기 작업을 수행하면 성능저하

    3. 결론

    내가 생각한 주요 특징으로는 InnoDB의 경우 데이터의 무결성과 동시성을 보장하여 안정적인 서비스 운영이 가능한 반면, MyISAM은 읽기 성능은 우수하지만 데이터 무결성 보장이 어려워 주요 데이터 저장에는 부적합한거같다

    근데 사실 MyISAM를 읽기성능때매 쓴다면 차라리 Mongo같은 Nosql이 더 잘어울리지 않을까..?

    물론 스키마구조가 고정되어있어야하고, 저장공간의 효율성을 생각한다면 MyISAM를 쓸수도 있을거같다.

    반응형

    'DataBase > Mysql' 카테고리의 다른 글

    MYSQL의 락  (0) 2024.11.03
Designed by Tistory.