-
DBMS에서 데이터를 삽입, 추출, 업데이트, 삭제하는데 사용하는 가장 핵심적인 요소
DB에서 데이터를 어떠한 방식으로 저장하고 접근할 것인지에 대한 기능을 제공한다.
데이터베이스 엔진에 따라 데이터 접근이 얼마나 빠른지, 얼마나 안정적인지 , 트랜잭션 제공 여부등의 차이점이 발생한다.
동일한 Database 여도 Table 마다 각기 다른 데이터베이스 엔진을 설정할 수 있다!
[MySQL의 데이터베이스 엔진]
1. MyISAM
MySQL의 기본 데이터베이스 엔진으로 데이터를 매우 효율적으로 저장함.
Full-Text 인덱스를 지원하며 특정 인덱스에 대해 메모리 캐쉬를 지원함.
트랜잭션을 지원하지 않는다.
트랜잭션에 대한 지원이 없기 때문에 작업도중 문제가 생겨도 커밋이 나갈 수 있다.
Table-level Lock을 지원한다.
테이블 작업 시 특정 행을 수정하려고 하면 Table 전체에 락이 걸려서 다른 사람이 작업할 수 없다.
주로 SELECT 작업이 많은 경우에 사용된다.
2. InnoDB
ACID 트랜잭션을 지원한다.
MyISAM보다 데이터 저장비율이 낮고, 데이터 조회 속도가 느리다.
데이터 압축이 불가능하다.
Table-level이 아닌 Row-level Lock을 지원한다.
테이블 작업 시 해당 row에만 lock이 걸리며 나머지 부분은 다른 사용자가 수정 가능하다.
Row-Level 이다보니 INSERT, UPDATE, DELETE에 대한 속도가 빠르다.
주로 데이터 추가, 수정, 삭제 작업이 빈번한 높은 퍼포먼스를 요구하는 대용량 사이트에 적합하다.
3. Cluster
트랜잭션을 지원한다.
모든 데이터와 인덱스가 메모리에 존재하여 매우 빠른 데이터 로드 속도를 자랑한다.
PK 사용 시 최상의 속도를 나타낸다.
4. Archive
MySQL 5.0부터 새롭게 도입된 엔진으로 자동으로 데이터 압축을 지원하며 다른 엔진에 비해 80% 저장공간 절약 효과를 보여준다.
가장 빠른 데이터 로드 속도를 보여준다.
INSERT와 SELECT만 지원한다.
[MyISAM 심화 정리]
MySQL 5.5 이전까지 기본 스토리지 엔진이다.
Data를 매우 효율적으로 저장한다.
빈번한 SELECT 문 사용시 효과적이다
블로그나 게시판처럼 한사람이 글을 쓰면 다른 많은 사람이 글을 읽는 방식에 최적의 성능을 발휘한다.
index는 B-Tree, R-tree, Full-text Index를 지원한다.
데이터 압축에 대한 옵션을 제공한다.
지리적 Data를 지원한다.Table 단위의 Lock을 제공
트랜잭션 미지원
[MyISAM은 언제 사용해야할까?]
1. 트래픽이 많은 테이블
2. 정적인 TABLE, 로그 TABLE
3. 쓰기 작업이 별로 없는 SELECT 위주의 테이블
[InnoDB 심화정리]
MySQL 5.5 부터 기본 스토리지 엔진이다.
ACID Transaction 지원MyISAM보다 data 저장 비율이 낮다.
MyISAM에 비해 약1.5~2.5배 정도의 큰 파일 사용한다.
MVCC/Snapshot read를 지원한다.
다른 Engine들에 비해 data 로딩 속도가 느리다.
index는 B-Tree, Clustered를 지원한다.
data 압축 옵션을 제공하지 않는다.
Row 단위 Lock을 제공
[InnoDB는 언제 사용해야할까?]
1. 갱신(INSERT/UPDATE) 작업이 많은 테이블
2. Index가 많은 대규모 테이블
https://scarelt.tistory.com/10
[MySQL] 풀 텍스트 인덱스(full-text index)를 통한 검색 속도 상승
소개 mysql 에서는 데이터를 검색하기 위해 like '% %'구문이 사용된다. 하지만 like 명령어의 경우 Full Scan 방식이기 때문에 많은 데이터를 검색할때 비효율적이다. 이러한 단점을 극복하고자 Full-text
scarelt.tistory.com
검색 성능 개선 3 - Full Text Index
긴 문자의 텍스트 데이터를 빠르게 검색하기 위한 MySQL의 부가적인 기능일반 익덱스와 차이로는, 풀텍스트 인덱스는 긴 문장 전체를 대상으로 인덱싱을 하며, InnoDB와 MyISAM 테이블만 지원하며, ch
velog.io
'DB' 카테고리의 다른 글
정규화 역정규화 (0) 2024.06.07 스케일인 스케일아웃 (0) 2024.03.29 옵티마이저 (0) 2024.03.27 RDBMS vs NoSQL (0) 2024.03.01 DB 서버 vs DBMS vs DB 엔진 (0) 2023.10.13