Database/MySQL

[MySQL] Engine 별 기능 알아보기

꽁담 2018. 6. 5. 01:32

MySQL 은 타 DBMS 와 다르게, 하나의 Instance 에 다수개의 Engine 을 등록할 수 있습니다.

또한 엔진은 Plug In 방식으로, 아래 명령어로 현재 Plug In 된 엔진을 확인할 수 있습니다.


mysql> SHOW ENGINES;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.00 sec)


이 중에서 주로, InnoDB, MyISAM, Archive 엔진이 사용됩니다.


InnoDB

MySQL 에서 기본으로 설정되는 엔진입니다.

일반적인 DBMS 기능을 지원합니다.


MyISAM

트랜잭션을 지원하지 않고, Table 단위의 Locking 입니다.

따라서, 다수개의 세션이 동시에 작업하는 경우 성능이 저하될 수 있습니다.


ARCHIVE

로그 수집에 적합한 엔진입니다.

데이터가 메모리상에서 압축된 후, 압축된 상태로 디스크에 저장됩니다.

한번 INSERT 된 데이터는 UPDATE 나 DELETE 를 할 수 없으며, 인덱스를 지원하지 않습니다.


3가지의 엔진에 대한 지원되는 기능입니다.


 

 InnoDB

 MyISAM

 ARCHIVE

 Storage Limits

 64 TB

 256 TB

 unlimit

 Transactions

 YES

 NO

 NO

 Locking Granularity

 Row Level

 Table Level

 Table Level

 MVCC

 YES

 NO

 NO

 Geospatial Data Type Support

 YES

 YES

 YES

 Geospatial Indexing Support

 YES

 YES

 NO

 B-Tree Indexes

 YES

 YES

 NO

 T-tree Indexes

 NO

 NO

 NO

 Hash Indexes

 NO

 NO

 NO

 Full-Text Search Indexes YES YES NO
 Clustered Indexes YES NO NO
 Data Caches YES NO NO
 Index Caches YES YES NO
 Compressed Data YES YES YES

 Encrypted Data

 YES YES YES
 Cluster Database Support NO NO NO
 Replication Support YES YES YES
 Foreign Key Support YES

 NO

 NO
 Backup Recovery YES YES YES
 Query Cache Support YES YES

 YES

 Update Statistics For Data Dictionary

 YES YES YES