>  기사  >  데이터 베이스  >  mysql 스토리지 엔진의 차이점은 무엇입니까

mysql 스토리지 엔진의 차이점은 무엇입니까

WBOY
WBOY원래의
2022-08-26 17:23:034019검색

mysql 스토리지 엔진 간의 차이점: 1. MyISAM은 트랜잭션 및 행 수준 잠금을 지원하지 않는 반면 InnoDB는 트랜잭션 및 행 수준 잠금을 지원합니다. 2. InnoDB는 MVCC 및 외래 키를 지원하지만 MyISAM은 MVCC 및 외래 키를 지원하지 않습니다. 열쇠.

mysql 스토리지 엔진의 차이점은 무엇입니까

이 튜토리얼의 운영 환경: windows10 시스템, mysql8.0.22 버전, Dell G3 컴퓨터.

mysql 스토리지 엔진의 차이점은 무엇인가요

  • InnoDB는 트랜잭션을 지원하는 반면 MyISAM은 트랜잭션을 지원하지 않습니다

  • InnoDB는 행 수준 잠금을 지원하고 MyISAM은 테이블 수준 잠금을 지원합니다

  • InnoDB는 MVCC를 지원합니다. MyISAM은 지원되지 않습니다

  • InnoDB는 외래 키를 지원하지만 MyISAM은 mysql

MySQL에서 myisam, innodb, memory의 세 가지 스토리지 엔진을 지원하지 않습니다. 1) 나의 ISAM 관리 비트랜잭션 테이블입니다. 고속 저장 및 검색은 물론 전체 텍스트 검색 기능도 제공합니다. MyISAM은 모든 MySQL 구성에서 지원되며 MySQL이 기본적으로 다른 엔진을 사용하도록 구성되지 않은 한 기본 스토리지 엔진입니다. 2) MEMORY 스토리지 엔진은 "인메모리" 테이블을 제공합니다. MERGE 스토리지 엔진을 사용하면 단일 테이블과 동일한 MyISAM 테이블에서 컬렉션을 처리할 수 있습니다. MyISAM과 마찬가지로 MEMORY 및 MERGE 스토리지 엔진은 비트랜잭션 테이블을 처리하며 두 엔진 모두 기본적으로 MySQL에 포함되어 있습니다.

참고: MEMORY 스토리지 엔진은 공식적으로 HEAP 엔진으로 식별됩니다. 3) InnoDB 및 스토리지 엔진은 기본적으로 모든 MySQL 5.1 바이너리 배포판에 포함된 트랜잭션 보안 테이블을 제공합니다. 원하는 대로 엔진을 허용하거나 비활성화하도록 MySQL을 구성할 수 있습니다.

2. 기능 포인트 소개

1) MyISAM 스토리지 엔진

MyISAM 스토리지 엔진은 트랜잭션을 지원하지 않으며 행 수준 잠금을 지원하지 않으며 동시 삽입 테이블 잠금만 지원하며 주로 사용됩니다. 고부하 선택용. Myisam 유형 테이블은 정적, 동적, 압축의 세 가지 저장 구조를 지원합니다. (1) 정적 유형: 정의된 테이블 열의 크기가 고정되어 있으므로(즉, xblob, xtext, varchar 등과 같은 가변 길이 데이터 유형을 포함하지 않음) mysql이 자동으로 정적 유형을 사용합니다. 마이삼 형식.

정적 형식을 사용하는 테이블의 성능은 유지 관리 및 액세스 중에 미리 결정된 형식으로 데이터를 저장하는 데 필요한 오버헤드가 매우 낮기 때문에 상대적으로 높습니다. 하지만 이 고성능은 공간과 맞바꿔 나오는데, 정의하면 고정되기 때문에 컬럼에 있는 값이 아무리 크더라도 최대값이 우선해서 공간 전체를 차지하게 되기 때문이다. (2) 동적 유형: 열(열이 하나만 있더라도)이 동적(xblob, xtext, varchar 및 기타 데이터 유형)으로 정의되면 myisam은 자동으로 동적 유형을 사용합니다. 정적 유형 테이블보다 더 많은 공간을 차지합니다. 공간은 적지만 성능은 낮습니다. 왜냐하면 필드의 내용이 변경되면 해당 위치를 이동해야 할 가능성이 높기 때문에 조각화가 발생하기 때문입니다. 데이터가 더 많이 변경되면 조각화가 증가하고 그에 따라 데이터 액세스 성능이 저하됩니다.

(3) 압축형: 이 데이터베이스에 생성된 테이블이 전체 수명주기 동안 읽기 전용인 경우, 이 경우 점유 공간을 줄이기 위해 myisam의 압축 테이블을 사용합니다.

2) MEMORY 스토리지 엔진:

(1) 메모리 스토리지 엔진은 기존 스토리지 엔진과 조금 다릅니다. 여기에 저장된 데이터를 사용하여 테이블을 생성하며, 모든 데이터도 메모리에 저장됩니다.

(2) 메모리 저장 엔진을 기반으로 하는 각 테이블은 실제로 디스크 파일에 해당합니다. 파일 이름과 파일의 테이블 이름은 동일하며 유형은 .frm입니다. 이 파일은 테이블의 구조만 저장하고 해당 데이터 파일은 메모리에 저장되므로 데이터 처리 속도가 빨라지고 테이블 전체의 처리 능력이 향상됩니다.

(3) 메모리 저장 엔진은 기본적으로 해시(HASH) 인덱스를 사용하는데, 이는 B-+Tree 유형을 사용하는 것보다 빠릅니다. 독자가 B-tree 유형을 사용하려는 경우 생성 시 이를 참조할 수 있습니다.

(4) 메모리 저장 엔진 파일 데이터는 mysqld 프로세스에서 예외가 발생하면 머신을 다시 시작하거나 종료하면 데이터가 사라집니다. 따라서 메모리 저장 엔진에서 테이블의 수명주기는 매우 짧으며 일반적으로 한 번만 사용됩니다.

3) innoDB 스토리지 엔진:

(1) innodb 스토리지 엔진 이 mysql 테이블은 트랜잭션, 롤백 및 시스템 충돌 복구 기능과 다중 버전 버스트 제어를 통해 트랜잭션 보안을 제공합니다.

(2) innodb는 자동 증가 열(auto_increment)을 지원합니다. 자동 증가 열의 값이 비어 있으면 어떻게 기존 값을 자동으로 저장하고 값을 증가시킬 수 있습니까? 현재 값보다 여전히 높은 경우 이 값이 저장됩니다.

(3) innodb 스토리지 엔진은 외래 키를 지원합니다. 외래 키가 있는 테이블을 하위 테이블이라고 하며, 해당 테이블이 의존하는 테이블을 상위 테이블이라고 합니다.

(4) innodb 스토리지 엔진에서 가장 중요한 것은 트랜잭션 및 트랜잭션 관련 기능을 지원한다는 것입니다. (5) innodb 스토리지 엔진은 mvcc 행 수준 잠금을 지원합니다.

추천 학습:

mysql 비디오 튜토리얼

위 내용은 mysql 스토리지 엔진의 차이점은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.