[MySQL]이노디비(InnoDB)와 MyISAM 테이블 엔진 선택하기
많이 사용하는 MySQL은 파생으로 마리아디비 그리고 아마존의 오로라 처럼 이를 기반으로 만들어진 데이터베이스가 있습니다.
문제는 트랜젝션의 사용성에 대한 문제인지 몇가지 특성이 좋아서 인지 디폴트 엔진을 InnoDB로 설정 되어 있다는 것입니다.
데이터양이 적을때는 문제가 되지 않습니다.
show engines;
하면 사용할 수 있는 데이터베이스 스토리지 엔진 목록을 볼 수 있습니다.
* MyISAM
- MySQL과 같이한 시간이 긴 오래된 엔진이다.
- 트랜젝션 지원이 안됨
* 이노디비(InnoDB)
- 트랜젝션 지원을 한다.
- 몇가지 특성에서 좋은 역활을 하는데 잘 모르겠다.
결론을 말하면 일반적으로 백만단위 까지 데이터가 들어갈것 같은데
select count(*) from 테이블명 형태로 전체 갯수를 알아야 할것 같다 싶으면 MyISAM 사용하세요.
그리고 아래 조건에 해당하면 MyISAM를 권장 합니다.
- 트랜젝션이 필요 없다. 여기서 처음 들어보는 단어다
- 일반적으로 문제 없이 사용하고 싶다.
이노디비 사용하면 십만단위까지는 문제 없지만 그 다음 부터는 몇가지 전문적인 실력을 요구 받을 수 있습니다.
점점 느려짐을 느끼실 수 있습니다.(이노디비에 문제가 있다는 의미가 아닙니다.)
이노디비 사용할때 전체 갯수에 시간이 걸린 다면 이런 방식도 사용 합니다.
약간 달라도 문제 되지 않는다면 SELECT MAX(no) FROM member 형태로 사용을 한다.
당연히 정확할 수 없다.