kjh00n의 기록저장소

데이터베이스 엔진 (Storage Engine) 본문

DB

데이터베이스 엔진 (Storage Engine)

kjh00n 2024. 11. 21. 11:40

데이터베이스 엔진 (Storage Engine)

데이터베이스 내부에 존재하는 데이터를 검색, 수정, 접근 같은 처리를 진행할 때의 방식을 지정, 기능을 부여한다.

 

① InnoDB

● 트랜잭션 기능 지원

● 생성/수정/삭제 처리 능력이 좋다.

● 행(Row) 단위 Locking 기능이 있다.

● 동시 작업, 동시 처리 능력에 적합하다.

②MyISAM

트랜잭션 기능 미지원

조회/검색 처리 능력이 좋다.

● Table 단위 Locking 기능이 있다.

 

Locking 기능

● 여러 사용자가 동시에 같은 DB, Table에 접근하여 데이터를 처리하는 경우 데이터의 무결성을 보장하기 위한 기능

무결성은 데이터베이스에서 데이터가 정확하고 일관되며 신뢰할 수 있도록 유지되는 상태를 말합니다.

● Row 단위 Locking은 특정 사용자가 특정 Table의 특정 Row(행)에 접근하여 작업하고 있는 도중에 다른 사용자는 해당 Row(행)에만 접근이 불가능하고 다른 Row(행)에는 접근하여 작업이 가능하다.

● Table 단위 Locking은 특정 사용자가 특정 Table의 특정 Row(행)에 접근하여 작업하고 있는 도중에 다른 사용자는 해당 Row(행)뿐만 아닌 해당 Table 자체에 작업이 불가능하다.

 

테이블 엔진 조회

→ show engines;

InnoDB가 기본엔진으로 되어있다.

 

특정 테이블의 엔진 확인

→ show create table [Table명];

→ SELECT table_name,engine FROM information_schema.tables WHERE table_name='테이블명';

특정 DB안의 모든 Table의 엔진을 확인

→ use [DB명];

→ show table status;

 

→ SELECT table_name,engine FROM information_schema.tables WHERE table_schema=[DB명];

 

기존 엔진 변경 (임시 설정)

→ set global storage_engine=[엔진명];

입력하고 MariaDB를 종료하고 다시 접속하면 바뀌어져있다.

종료 후 재접속 ↓

기본 엔진 변경 (영구 설정)

→ /etc/my.cnf 접속하여 설정해주면 된다.

→ 설정해주고 systemctl restart mariadb 입력

 

Table에 설정되어 있는 엔진 변경 (영구 설정)

alter table [Table명] engine=[엔진명];

 

'DB' 카테고리의 다른 글

실습4  (0) 2024.11.21
JOIN  (0) 2024.11.21
데이터 사전, Schema  (0) 2024.11.21
문자 인코딩 (Character Encoding)  (0) 2024.11.21
실습3  (0) 2024.11.20