반응형
Storage Engine 종류
mysql> SHOW ENGINES;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
MyISAM
- 장점
- 일반적으로 SELECT 쿼리시 빠름
- 풀 텍스트 인덱스 지원
- 조회만 빈번하게 일어날 경우 유리함
- 단점
- ROW LEVEL LOCK을 지원하지 않고, TABLE LEVEL LOCK을 사용하기 때문에 ROW가 늘어날 수록 성능 저하 발생
- 트랜잭션 처리나 복구 처리가 어려움
InnoDB
- 장점
- ROW LEVEL LOCK을 지원하여 ROW가 늘어나도 성능 저하 없음
- 트랜잭션 처리가 필요한 대용량 데이터 관리에 유리함
- CRUD 모두 빈번하게 일어날 경우 유리함
- 단점
- 풀 텍스트 인덱스를 지원하지 않음
- 많은 기능을 지원하기 때문에 설계가 비교적 복잡
- 리소스 사용량도 비교적 높음
특정 테이블 engine 확인하기
mysql> SELECT table_schema, table_name, engine
-> FROM information_schema.tables
-> WHERE table_name = 'user';
+--------------+------------+--------+
| table_schema | table_name | engine |
+--------------+------------+--------+
| mysql | user | MyISAM |
| test | user | InnoDB |
+--------------+------------+--------+
테이블 engine 변경하기
mysql> use test;
mysql> ALTER TABLE user ENGINE = MyISAM;
mysql> SELECT table_schema, table_name, engine
-> FROM information_schema.tables
-> WHERE table_name = 'user';
+--------------+------------+--------+
| table_schema | table_name | engine |
+--------------+------------+--------+
| mysql | user | MyISAM |
| test | user | MyISAM |
+--------------+------------+--------+
참고
반응형
'Development > MySQL' 카테고리의 다른 글
[MySQL] Lock (0) | 2021.02.26 |
---|---|
[MySQL] JOIN (0) | 2021.02.25 |
[MySQL] Transaction Isolation Level (0) | 2020.12.29 |
[MySQL] 쿼리 (0) | 2020.12.29 |
[MySQL] 설치하기 (0) | 2019.09.29 |