sourcecode

MySQL 데이터베이스 엔진이란?

copyscript 2022. 10. 7. 21:53
반응형

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에서 최고의 성능을 얻으려면 서버의 파라미터를 조정해야 합니다.그렇지 않으면 InnoDB를 사용하지 않을 이유가 없습니다.

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

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

자세한 것은, https://en.wikipedia.org/wiki/Database_engine 를 참조해 주세요.

데이터베이스 엔진(또는 스토리지 엔진)은 데이터베이스 관리 시스템(DBMS)이 데이터베이스에서 CRUD(Create, Read, Update and Delete) 데이터를 생성, 삭제하기 위해 사용하는 기본 소프트웨어 구성 요소입니다.대부분의 데이터베이스 관리 시스템에는 DBMS의 사용자 인터페이스를 거치지 않고 기본 엔진과 상호 작용할 수 있는 자체 API(Application Programming Interface)가 포함되어 있습니다.

언급URL : https://stackoverflow.com/questions/4233816/what-are-mysql-database-engines

반응형