>  기사  >  데이터 베이스  >  MySQL에는 몇 개의 스토리지 엔진이 있습니까?

MySQL에는 몇 개의 스토리지 엔진이 있습니까?

云罗郡主
云罗郡主원래의
2019-01-22 15:59:394068검색

모든 mysql 스토리지 엔진을 보려면 다음 명령을 실행하십시오. [권장 튜토리얼: MySQL 튜토리얼]

MySQL에는 몇 개의 스토리지 엔진이 있습니까?

InnoDB 스토리지 엔진

InnoDB는 트랜잭션 데이터베이스에 선호되는 엔진이며, 트랜잭션 보안 테이블(ACID)을 지원하고 행을 지원합니다. 잠금 및 외래 키는 위 그림에서 볼 수 있듯이 InnoDB가 기본 MySQL 엔진입니다. InnoDB의 주요 기능은 다음과 같습니다.

1. InnoDB는 MySQL에 커밋, 롤백 및 충돌 복구 기능을 갖춘 트랜잭션 안전(ACID 호환) 스토리지 엔진을 제공합니다. InnoDB는 행 수준에서 잠금을 설정하고 SELECT 문에서 Oracle과 유사한 비잠금 읽기 기능도 제공합니다. 이러한 기능은 다중 사용자 배포 및 성능을 향상시킵니다. SQL 쿼리에서는 동일한 쿼리에서도 InnoDB 유형 테이블과 다른 MySQL 테이블 유형을 자유롭게 혼합할 수 있습니다

2. InnoDB는 대용량 데이터 처리 시 최대 성능을 발휘하도록 설계되었습니다. CPU 효율성은 다른 디스크 기반 관계형 데이터베이스 엔진 잠금 장치와 비교할 수 없습니다.

3. InnoDB 스토리지 엔진은 MySQL 서버와 완전히 통합되어 있습니다. InnoDB 스토리지 엔진은 메인 메모리 풀에 데이터와 인덱스를 캐싱하기 위한 자체 버퍼를 유지합니다. InnoDB는 여러 파일(또는 원시 디스크 파일)을 포함할 수 있는 논리적 테이블스페이스에 테이블과 인덱스를 배치합니다. 이는 각 테이블이 별도의 파일에 저장되는 MyISAM 테이블과 다릅니다. InnoDB 테이블은 파일 크기가 2GB로 제한되는 운영 체제에서도 크기에 제한이 없습니다. InnoDB는 테이블에 데이터를 저장할 때 기본 키 순서로 저장됩니다. 기본 키가 테이블 정의에 지정되어 있지 않으면 InnoDB는 각 행에 대해 6바이트 ROWID를 생성하여 기본 키로 사용합니다

5. InnoDB는 고성능을 요구하는 많은 대규모 데이터베이스 사이트에서 사용됩니다

InnoDB는 생성하지 않습니다. 디렉터리, InnoDB를 사용할 때 MySQL은 MySQL 데이터 디렉터리에 ibdata1이라는 10MB 자동 확장 데이터 파일과 ib_logfile0 및 ib_logfile1이라는 두 개의 5MB 로그 파일을 생성합니다.

MyISAM 스토리지 엔진

MyISAM은 ISAM 스토리지 엔진을 기반으로 하며 이를 확장합니다. . 웹, 데이터 웨어하우징 및 기타 애플리케이션 환경에서 가장 일반적으로 사용되는 스토리지 엔진 중 하나입니다. MyISAM은 삽입 및 쿼리 속도가 빠르지만 트랜잭션을 지원하지 않습니다. MyISAM의 주요 기능은 다음과 같습니다.

1. 대용량 파일을 지원하는 파일 시스템 및 운영 체제에서 대용량 파일(최대 63비트 파일 길이)이 지원됩니다.

2 삭제, 업데이트 및 삽입이 혼합된 경우 동적 크기입니다. 행은 조각화를 덜 생성합니다. 이는 인접한 삭제된 블록을 병합하여 자동으로 수행되며, 다음 블록이 삭제되면 다음 블록으로 확장됩니다. 3. 각 MyISAM 테이블의 최대 인덱스 수는 64개이며 재컴파일을 통해 변경할 수 있습니다. 인덱스당 최대 열 수는 16

4입니다. 최대 키 길이는 1000바이트입니다. 이는 컴파일을 통해 변경될 수도 있습니다. 250바이트를 초과하는 경우 위

5를 초과하는 키가 사용됩니다. BLOB 및 TEXT 열은 인덱싱될 수 있습니다

6. 인덱싱된 열에는 NULL이 허용됩니다. 이 값은 각 키의 0~1바이트를 차지합니다

7. 모든 숫자 키 값은 더 높은 바이트를 허용하기 위해 먼저 저장됩니다. 인덱스 압축

8. 각 MyISAM 유형 테이블에는 AUTO_INCREMENT의 내부 열이 있습니다. 이 열은 INSERT 및 UPDATE 작업 중에 업데이트되고 AUTO_INCREMENT 열이 새로 고쳐집니다. 따라서 MyISAM 유형 테이블의 AUTO_INCREMENT 열 업데이트는 InnoDB 유형의 AUTO_INCREMENT보다 빠릅니다

9. 데이터 파일과 인덱스 파일은 서로 다른 디렉터리에 배치될 수 있습니다

10. 각 문자 열은 서로 다른 문자 집합을 가질 수 있습니다

. 11. VARCHAR이 있는 테이블은 고정 또는 동적 레코드 길이를 가질 수 있습니다

12, VARCHAR 및 CHAR 열은 최대 64KB까지 가능합니다.

MyISAM 엔진을 사용하여 데이터베이스를 생성하면 3개의 파일이 생성됩니다. 파일 이름은 테이블 이름으로 시작하고 확장자는 파일 유형: frm 파일 저장 테이블 정의, 데이터 파일의 확장자는 입니다. MYD(MYData)는 인덱스 파일의 확장자입니다. MYI (MYIndex)

MEMORY 스토리지 엔진

MEMORY 스토리지 엔진은 테이블의 데이터를 메모리에 저장하여 다른 테이블 데이터를 쿼리하거나 참조하지 않고도 빠른 액세스를 제공합니다. MEMORY의 주요 기능은 다음과 같습니다.

1. 각 MEMORY 테이블은 최대 32개의 인덱스, 인덱스당 16개의 열, 최대 500바이트의 키 길이를 가질 수 있습니다.

2 MEMORY 스토리지 엔진은 HASH 및 BTREE 미니어처를 수행합니다. . MEMORY 테이블에는 고유하지 않은 키 값이 있을 수 있습니다

4. MEMORY 테이블은 고정 레코드 길이 형식을 사용합니다

5 MEMORY는 BLOB 또는 TEXT 열을 지원하지 않습니다

6. NULL 값이 있는 열에 대한 인덱스 ​

7. MEMORY 테이블은 다른 비임시 테이블과 마찬가지로 모든 클라이언트 간에 공유됩니다.

8. MEMORY 테이블 메모리는 메모리에 저장됩니다. MEMORY 테이블과 서버가 쿼리하는 곳은 처리 중 유휴 시간 동안 생성된 내부 테이블이 공유됩니다

9. MEMORY 테이블의 내용이 더 이상 필요하지 않을 때 MEMORY 테이블에서 사용하는 메모리를 해제하려면 DELETE FROM 또는 TRUNCATE TABLE을 실행하거나 전체 테이블을 삭제해야 합니다(DROP TABLE 사용)

스토리지 엔진 선택

MySQL에는 몇 개의 스토리지 엔진이 있습니까?

커밋, 롤백, 충돌 복구 등의 트랜잭션 보안(ACID 호환성) 기능을 제공하고 동시성 제어가 필요하다면 InnoDB를 선택하는 것이 좋습니다.

데이터 테이블이 주로 레코드 삽입 및 쿼리에 사용된다면 MyISAM 엔진은 더 높은 처리 효율성을 제공할 수 있습니다

데이터를 일시적으로만 저장하고 데이터의 양이 크지 않으며 높은 데이터 보안이 필요하지 않은 경우 메모리 엔진을 선택하여 데이터를 메모리에 저장할 수 있습니다. MySQL에서 쿼리의 중간 결과를 저장하는 임시 테이블로 사용됩니다

INSERT 및 SELECT 작업만 있는 경우 아카이브를 선택할 수 있습니다. 아카이브는 높은 동시성 삽입 작업을 지원하지만 트랜잭션에 안전하지는 않습니다. 아카이브는 아카이브된 데이터를 저장하는 데 매우 적합합니다. 예를 들어, 사용할 엔진을 유연하게 선택해야 합니다. 데이터베이스의 여러 테이블은 다양한 성능과 실제 요구 사항을 충족하기 위해 서로 다른 엔진을 사용할 수 있습니다. 적절한 스토리지 엔진을 사용하면 전체 데이터베이스의 성능이 향상됩니다.

위 내용은 MySQL에는 몇 개의 스토리지 엔진이 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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