MySQL의 테이블 작성의 기본인 스토리지 엔진을 알아보자.
MySQL의 스토리지 엔진을 알아야 할것같다는 생각이 듭니다.
여태까지 Oracle, MsSQL위주로 업무를 했고 (잘 하진못하지만...)
MySQL은 개인적으로 쓰기위해서 배우고 있는데
쌓이는 데이터 특성에 따라
테이블의 스토리지엔진을 각기 설정해서 써야할것같습니다.
foreign key를 쓰기위해선 기본적으로 InnoDB의 스토리지 엔진을 써야한다는건 이번에 봤네요...
show engines;
현재 설치돼있는 MySQL 서버에서 지원되는 스토리지 엔진 확인
위의 Support 컬럼별 설명
Yes |
해당 스토리지엔진이 포함돼있고, 사용 가능으로 활성화된 상태 |
Default |
"YES"와 동일한 상태지만 필수 수토리지 엔진임 의미 |
No |
현재 해당 스토리지 엔진이 포함되지 않았음 |
Disabled |
해당 스토리지 엔진이 포함됐지만 파라미터에 의해 비활성화 된 상태 |
플러그인 형태로 빌드된 스토리지 엔진 라이브러리를 다운받아 끼워넣기만 하면 사용가능하다
show plugins;
InnoDB 와 MyISAM 스토리지 엔진
- MySQL 5.5부터 InnoDB가 기본 스토리지 엔진으로 채택.
기존의 MyISAM에 비해서 많은 특징과 기능을 가지고 있다고 합니다.
(개인적으로 Master성은 MyISAM, History성은 InnoDB를 쓸거라 생각했는데 계속 혼동되네요...)
- MyISAM 전문검색기능이 있지만 요즘은 스핑크스, 트리튼같은 전문검색 서드파티 S/W를 많이 사용
- 단지 설정 튜닝이 아주 조금 까다롭다 정도?
읽기 방법 |
성능 비교 |
프라이머리 키 |
InnoDB가 6~9%정도 빠름 |
보조 인덱스 |
64개 이하 동시 스레드에선 비슷. |
프라이머리 키 |
성능 차이 없음 |
프라이머리 키 레인지 스캔 |
InnoDB가 200~2600% 빠름 |
프라이머리 키 레인지 스캔 |
256개 동시 스레드이하에선 InnoDB가 30%정도 빠름 그 이상에선 MyISAM이 5%정도 빠름 |
풀 테이블 스캔 |
InnoDB가 20%정도 빠름 |
등 등의 차이
결과적으로 InnoDB가 어느정도 우세
개인적으로 스타트업과 관련되어서
계속 학습해야 할 것같습니다.
'프로그래밍&IT > MySQL, Oracle, DB 공통' 카테고리의 다른 글
[Oracle] 인덱스 종류 그리고 인덱스를 이용하는 & 이용못하는 쿼리 (0) | 2024.10.30 |
---|---|
[Oracle] View에 대해서 알아보자 (1) | 2024.10.30 |
PL/SQL 블록 구조 (0) | 2022.07.10 |
MySQL 에서 auto_increment 값 초기화 하기 (0) | 2015.02.22 |
MySQL 기본 함수 (0) | 2013.12.15 |