myisam innodb 차이

    myisam innodb 차이

    회사에서 myisam을 쓰고있어서 내가알던 innodb와 어떤차이가 있나 궁금해졌다.

    1. MyISAM

    • 비 - 트랜잭션-세이프 테이블을 관리한다.
    • 항상 테이블에 ROW COUNT를 가지고 있기 때문에 SELECT명령시에 빠른속도를 자랑한다.
    • 전체 문장 검색 능력 뿐만 아니라, 고성능 스토리지 복구 기능을 제공한다.
    • ROW-LEVEL-LOCKING을 지원하지 못해 SELECT INSERT UPDATE DELETE시 해당 Table 전체에 Locking이 걸린다.
    • row수가 커지면 커질수록 속도는 엄청나게 느려진다

     

    2. InnoDB

    • InnoDB는 모든 5.0 바이너리 배포판에 디폴트로 포함되어 있다.
    • InnoDB 및 BDB 스토리지 엔진은 트랜잭션에 안전한 테이블을 제공하는 트랜잭션-세이프스토리지 엔진
    • MyISAM과 비슷하지만 ORACLE처럼 많은 기능을 지원 (commit, rollack, 장애복구, row-level-locking, 외래키)
    • 자체적으로 메인 메모리안에 데이터 캐싱과 인덱싱을 위한 버퍼 풀을 관리한다.
    • 대용량 데이터 처리에 최고의 효율을 낼수있게 설계되어있다.
    • MyISAM 장점인 풀텍스트 인덱스를 지원하지 못한다.

     

    3. 공통점

    • Mysql의 스토리지 엔진이다.

     

    4. 결론

    트랜잭션 처리가 필요하고 대용량 데이터를 다루기 위해서는 InnoDB가 효율적이다.

    트랜잭션 처리가 필요없고 운영에 Read-Only 기능이 많은 서비스일수록 MyISAM 엔진이 효율적이다.

    MyIsam - Select가 많은 서비스

    InnoDB - 데이터의 변화가 많은 서비스 (CREATE, UPDATE, DELETE)

    용도에따라 스토리지 엔진을 결정하는데 InnoDB와 MyISAM 테이블을 같이 사용할 경우,

    조인 할때 주의해야한다.

    '코딩 > 데이터베이스' 카테고리의 다른 글

    where 1=1 쓰는 이유  (0) 2023.04.11

    댓글

    Designed by JB FACTORY