< link rel="shortcut icon" href="https://xn--oy2bi4yvoj.net/favicon.ico"> MyISAM VS InnoDB > 프로그래밍 - 프로그래밍 강좌 | 프리존 - 게임정보 커뮤니티 
  • 북마크

프로그래밍 - 프로그래밍 강좌




[SQLDATABASE[Mysql,Mssql..]] MyISAM VS InnoDB

좋아
2022.01.13 12:21 268 2

본문

Mysql의 스토리지 엔진으로 가장 많이 사용하는 MyISAM, InnoDB의 차이를 알아보자.


결론적으로 얘기하자면 Transaction처리가 필요하고 대용량의 데이터를 다루기 위해서는 InnoDB가 효율적이고


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


한마디로 MyISAM은 SELECT가 많은서비스에  InnoDB는 데이터의 변화가 많은 서비스에 적합하다 할 수 있다.


Transaction 이란 데이터베이스의 상태를 변화시키기 위해서 수행하는 작업의 단위를 뜻한다.


좀 더 풀어서 이야기 해 보자.



1. MyISAM


MyISAM은 항상 테이블에 ROW COUNT를 가지고 있기 때문에 SELECT count(*) 명령시 빠르고, 


SELECT 명령시에도 빠른 속도를 자랑한다. 또한, 풀텍스트 인덱스를 지원하는데


여기서 풀텍스트 인덱스는 검색 엔진과 유사한 방법으로 자연 언어를 이용해 검색할 수 있는 특별한 인덱스로 모든 데이터 문자열의 단어를 저장한다.


그렇기 때문에 Read Only기능이 많은 서비스일 수록 MyISAM엔진이 효율적이라 할 수 있다.


단점으로는, row level locking을 지원하지 못해, select insert update delete시 해당 Table 전체에 Locking이 걸린다.


(row의 수가 커지면 커질수록 속도는 엄청나게 느려진다는 단점!)


2. InnoDB


장점으로는, MyISAM의 단점으로 있었던 row level locking이 지원된다. 


그렇기 때문에 트랜잭션 처리가 필요한 대용량의 데이터에 유리한 점이 있어서


단점으로는, MyISAM의 장점인 풀텍스트 인덱스를 지원하지 못한다고 한다.


그리고 용도에 따라 스토리지 엔진을 결정하는데, MyISAM과 InnoDB 테이블을 같이 사용할 경우, 조인시 주의해야한다고 함.

댓글목록 2

사과조아님의 댓글

사과조아 2022.03.28 16:35

설명 감사합니다.

VEGEMILL님의 댓글

VEGEMILL 2022.04.05 06:50

ㄳㄳ