Programing

MySQL 데이터베이스 엔진이란 무엇입니까?

lottogame 2020. 11. 5. 07:37
반응형

MySQL 데이터베이스 엔진이란 무엇입니까?


주위를 둘러 보니 MySQL 엔진 중 일부가 innodb와 MyISAM이라는 것을 알았습니다. 아마도 몇 가지 더 있습니다. 내 질문은 이러한 데이터베이스 엔진이 무엇입니까?

다른 MySQL 엔진의 차이점은 무엇입니까? 그리고 더 중요한 것은 어떤 것을 사용할지 어떻게 결정합니까?


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

개인적으로 MySQL을 사용해야하는 경우 항상 InnoDB를 사용합니다. MyISAM은 지원하지 않지만 트랜잭션 및 외래 키를 지원합니다.


MyISAM과 InnoDB는 가장 일반적으로 사용되는 엔진입니다.

MyISAM은 InnoDB보다 약간 빠르며 검색 기능 통합에 매우 유용한 FULLTEXT 인덱스를 구현합니다. MyISAM은 거래되지 않으며 외래 키 제약 조건을 구현하지 않습니다. 이는 주요 단점입니다.

그러나 두 가지의 장점을 모두 사용하고 서로 다른 스토리지 엔진으로 테이블을 생성 할 수 있습니다. 일부 소프트웨어 (WordPress, 내 생각에)는 페이지 간 관계, 버전 등과 같은 대부분의 데이터에 Inno를 사용합니다. 게시물 레코드에는 MyISAM을 사용하는 별도의 콘텐츠 테이블에있는 레코드로 연결되는 ID가 포함되어 있습니다. 이렇게하면 콘텐츠가 최상의 검색 기능을 가진 테이블에 저장되는 반면 대부분의 다른 데이터는 데이터 무결성을 강화하는 테이블에 저장됩니다.

내가 너라면 이노를 뽑을거야. 가장 믿을만 하니까. 필요한 경우 특정 목적으로 만 MyISAM을 사용하십시오.

새 테이블을 만들 때 기본적으로 InnoDB를 사용하도록 데이터베이스를 구성 할 수 있습니다.


다양한 스토리지 엔진을 사용할 수 있지만 MyISAM 또는 InnoDB 엔진 유형을 사용하지 않는 이유는 거의 없습니다. MyISAM은 대부분의 상황에서 작동하지만 검색 및 선택에 비해 업데이트 또는 삽입이 많으면 InnoDB 엔진에서 더 나은 성능을 얻을 수 있습니다. InnoDB에서 최상의 성능을 얻으려면 서버의 매개 변수를 조정해야합니다. 그렇지 않으면 사용하지 않을 이유가 없습니다.

MERGE 엔진은 동일하게 정의 된 여러 테이블에서 데이터를 쿼리하는 매우 효과적인 방법입니다. MEMORY 엔진은 디스크 기반 엔진에서 검색하는 데 비효율적 인 데이터에 대해 많은 복잡한 쿼리를 수행하는 가장 좋은 방법입니다. CSV 엔진은 다른 애플리케이션에서 사용할 수있는 데이터를 내보낼 수있는 좋은 방법입니다. BDB는 자주 액세스하는 고유 키가있는 데이터에 적합합니다.

이 이미지는 MySQL과 함께 제공되는 일부 스토리지 엔진의 개요를 제공합니다.


https://en.wikipedia.org/wiki/Database_engine에서 더 많은 정보를 얻을 수 있습니다.

데이터베이스 엔진 (또는 저장소 엔진)은 데이터베이스 관리 시스템 (DBMS)이 데이터베이스에서 데이터를 생성, 읽기, 업데이트 및 삭제 (CRUD)하는 데 사용하는 기본 소프트웨어 구성 요소입니다. 대부분의 데이터베이스 관리 시스템에는 사용자가 DBMS의 사용자 인터페이스를 거치지 않고 기본 엔진과 상호 작용할 수 있도록하는 자체 API (응용 프로그래밍 인터페이스)가 포함되어 있습니다.

참고 URL : https://stackoverflow.com/questions/4233816/what-are-mysql-database-engines

반응형