>데이터 베이스 >MySQL 튜토리얼 >MySQL에서 InnoDB와 MyISAM의 차이점

MySQL에서 InnoDB와 MyISAM의 차이점

Guanhui
Guanhui원래의
2020-06-04 11:01:032919검색

MySQL에서 InnoDB와 MyISAM의 차이점

MySQL에서 InnoDB와 MyISAM의 차이점

1. 트랜잭션 및 외래 키

InnoDB에는 트랜잭션이 있으며 4가지 트랜잭션 격리 수준, 롤백, 충돌 복구 기능 및 다중 버전 동시 트랜잭션 안전을 지원합니다. 산. 애플리케이션이 많은 수의 INSERT 또는 UPDATE 작업을 수행해야 하는 경우 다중 사용자 동시 작업의 성능을 향상시킬 수 있는 InnoDB를 사용해야 합니다.

MyISAM은 비트랜잭션 테이블을 관리합니다. 고속 저장 및 검색은 물론 전체 텍스트 검색 기능도 제공합니다. 애플리케이션에서 많은 수의 SELECT 쿼리를 실행해야 하는 경우 MyISAM이 더 나은 선택입니다

2. 전체 텍스트 인덱스

Innodb는 전체 텍스트 인덱스를 지원하지 않습니다. 스핑크스와 같은 검색 엔진을 사용하는 것이 가장 좋습니다. myisam은 중국어를 잘 지원하지 않습니다

그러나 Innodb의 새 버전에서는 이미 지원합니다

3. Locks

mysql은 행 수준, 페이지 수준, 테이블 수준의 세 가지 잠금 수준을 지원합니다.

MyISAM은 테이블 수준 잠금을 지원합니다. Oracle 유형과 일치하는 SELECT에서 비잠금 읽기 제공

InnoDB는 행 수준 잠금을 지원합니다. InnoDB 테이블 행 잠금은 절대적이지 않습니다. 범위 내에서 SQL 문을 실행할 때 MySQL이 스캔할지 확실하지 않으면 InnoDB 테이블도 잠깁니다. 전체 테이블의 영향에 주의하세요

예를 들어, "%aaa%"

4.Storage

MyISAM과 같은 이름이 디스크 문서에 3개 저장되어 있는 업데이트 테이블 세트 num=1입니다. 첫 번째 파일의 이름은 테이블 이름으로 시작하며 확장자는 파일 유형을 나타냅니다. .frm 파일은 테이블 정의를 저장합니다. 인덱스 파일의 확장자는 .MYI입니다.

InnoDB, 디스크 기반 리소스 InnoDB 테이블스페이스 데이터 파일과 해당 로그 파일입니다. InnoDB 테이블의 크기는 운영 체제 파일의 크기에 의해서만 제한됩니다.

참고: MyISAM 테이블은 크로스 플랫폼 데이터 전송에서 MyISAM 스토리지를 사용하면 많은 문제가 발생합니다.

5. 인덱스

InnoDB(인덱스 구성 테이블)는 클러스터형 인덱스와 인덱스를 사용하여 데이터를 순차적으로 저장합니다. 인덱스와 데이터를 모두 캐시할 수 있습니다.

MyISAM(힙 조직 테이블)은 비클러스터형 인덱스를 사용하며, 인덱스는 파일과 분리되어 무작위로 저장됩니다.

6.

MyISAM은 읽고 쓰기를 서로 차단합니다. MyISAM은 쓰는 동안 읽기를 차단할 뿐만 아니라, 쓰는 동안에도 읽기를 차단하지만 읽기 자체는 다른 읽기를 차단하지 않습니다.

InnoDB 읽기 및 쓰기 차단은 관련이 있습니다. 트랜잭션 격리 수준

권장 튜토리얼: "

PHP Tutorial" "MySQL Tutorial"

위 내용은 MySQL에서 InnoDB와 MyISAM의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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