본문 바로가기
MYSQL

InnoDB VS MyISAM, 인덱스 최적화, 쿼리 최적화

by kcj3054 2022. 9. 17.
  1. InnoDB는 트랜잭션 처리가 가능하며, 대용량 데이터를 다루기에 좋다 그러나 트랜잭션이 필요없고 조회기능이 많을 때는 MyISAM이 좋다.

  2. MyISAM은 항상 테이블에 ROW COUNT를 가지고 있어서 조회 쿼리시 빠르다.

  3. MyISAM은 테이블 수준의 잠금, InnoDB는 행 수준의 잠금

  4. MyISAM은 파일 시스템 블록 캐시에 의존하는 반면, InnoDB는 엔진 자체 내에서 행 캐시와 인덱스 캐시를 결합하여 작업 수행

인덱스 최적화 기법

  • 인덱스는 두번 접근이다. 해당 인덱스에 접근한 뒤 인덱스를 통해서 collection에 또 접근을 해야한다 그래서 인덱스를 여러 컬럼에 건다고 좋은 것은 아니다.

  • 인덱스를 생성할 때는 순서가 있는데 생성 순서에 따라 인덱스 성능이 달라진다.

  • 카디널리티는 유니크한 값의 정도를 나타낸다 // ex : age와 email이 있을 경우 email이 카디널리티가된다.

쿼리 최적화

  • pk값은 음수가 나오지 않으니 unsined를 걸어주는 것이 좋다. -> ex : id int unsigned not null auto_increment comment '학번'.

  • timestamp -> gloabal서비스를 할 때 그 나라에 맞게 서비스가 가능하다 //datetime(8b), timestamp (4b)

'MYSQL' 카테고리의 다른 글

MYSQL VERSION 확인  (0) 2023.10.05
데이터모델링_트랜잭션_savepoint  (0) 2022.09.23
partition / index 타기 (정리 예정)  (0) 2022.09.18