126 MySQL의 스토리지 엔진 개요

A, MySQL의 스토리지 엔진 개요

1.1 스토리지 엔진은 무엇입니까?

에서 파일 (또는 메모리)에 저장된 다양한 기술의 다양한 MySQL의 데이터입니다. 이러한 기술을 기술들 각각은 다른 저장 장치, 인덱싱 기법 로크 레벨을 사용하여 궁극적으로 다른 기능 및 다양한 기능을 제공한다. 서로 다른 기술을 선택하면하여 응용 프로그램의 전반적인 기능을 개선, 여분의 속도 또는 기능을 얻을 수 있습니다.

당신이 연구에서 임시 데이터의 많은 수의 경우 예를 들어, 메모리 스토리지 엔진을 사용해야 할 수도 있습니다. 메모리 스토리지 엔진은 메모리에 테이블의 모든 데이터를 저장합니다. 또는, 당신은 지원 트랜잭션 처리 데이터베이스를해야 할 수도 있습니다 (트랜잭션이 때 데이터 실패 롤백 기능이 있는지 확인하기 위해).

이러한 다양한 기술과 연관된 기능을 지원은 MySQL의 스토리지 엔진 (또한 테이블 형식)으로 불린다.

다양한 스토리지 엔진의 MySQL의 기본 구성은, 당신이 설정 한 사전 또는 MySQL 서버에서 사용할 수 있습니다. 당신은 당신의 성능과 기능은 당신을 위해 최대의 유연성을 제공하기 위해 어떻게 결합해야 할 때이 정보와 데이터를 검색하는 방법, 정보를 저장하는 방법을 선택하기 위해 서버, 데이터베이스 및 테이블 스토리지 엔진에 적용 할 수 있습니다.

저장하고 데이터를 검색하는 방법을 선택, 유연성이 주요 이유는 MySQL 인기입니다. 다른 데이터베이스 시스템 (대부분의 상업용 선택 포함)은 오직 한 종류의 지원 데이터 저장을 .

불행하게도, 데이터베이스 솔루션의 다른 형태의 접근 방식은 의미 "모든 요구 사항을 충족 한 크기의"를 취할 당신이 어떤 성능을 희생하는 중입니다을하거나 심지어 몇 시간 또는 시간의 일 상세이 데이터베이스를 조정을 사용합니다. MySQL을 사용하여, 우리는 단지 우리가 그것을 사용하는 스토리지 엔진을 수정해야합니다.

1.2 MySQL의 스토리지 엔진 지원

포함 mysql5.6 지원하는 스토리지 엔진, 이노,의 MyISAM, MEMORY, CSV, BLACKHOLE, FEDERATED, MRG_MYISAM, ARCHIVE, PERFORMANCE_SCHEMA. NDB와 InnoDB의 트랜잭션 안전 테이블을 제공하는, 다른 스토리지 엔진은 비 트랜잭션 안전 테이블입니다.

1.3 검색 엔진의 다양한 소개

이노 : MySQL의 버전 5.6의 기본 스토리지 엔진. InnoDB는 사용자 데이터를 보호하기 위해 롤백을 커밋 있으며, 충돌 복구 기능 트랜잭션 안전 저장 엔진입니다. InnoDB의 행 레벨 잠금 및 Oracle 스타일의 일관된 비 잠금은 다중 사용자 동시성과 성능을 향상시키기 위해 읽어 보시기 바랍니다. 인덱스에 저장 InnoDB의 사용자 데이터는 공통 기본 키를 기반으로 집계 쿼리가 I / O 오버 헤드를 가져다 줄입니다. 데이터 무결성을 보장하기 위해, InnoDB는 또한 외래 키 제약 조건을 지원합니다.

의 MyISAM : 의 MyISAM도 지원 서비스, 외래 키를 지원하지 않습니다, 장점은 빠른 액세스 속도, 그러나 그것은 종종 읽기 전용으로 사용 또는 읽기 대부분의되도록 테이블 수준 잠금은 읽기 및 쓰기 부하의 측면에서 성능을 제한 데이터 장면.

메모리 : 현장에 적용 메모리에 저장하는 모든 데이터를 빠르고으로 중요하지 않은 데이터를 찾으십시오. 이 데이터가 메모리에 저장, 그리고 기본적으로 HASH 인덱스를 사용하지만 때문에 데이터 서비스가 종료되면 메모리 종류 테이블 액세스 데이터는 매우 신속하게, 테이블이 손실됩니다

BLACKHOLE : 블랙 홀 스토리지 엔진, 유닉스 계열을 / dev / null, 아카이브가 저장되지하지만 데이터를 수신 전용입니다. 테이블에 쿼리이 엔진들은 빈 집합을 반환합니다. 테이블의 DML 문에 적용 할 수있다 이러한 서버에서 전송해야하지만 주 서버 및 마스터 구성에서 이러한 데이터의 백업을 유지하지 않습니다.

CSV는 : 그것의 표는 정말 쉼표로 구분 된 텍스트 파일입니다. CSV 테이블을 가져오고 CSV 형식으로, 같은 형식의 수출 데이터 읽기 및 스크립트를 작성할 수 있습니다 및 응용 프로그램 데이터와 상호 작용. 인덱스가없는 CSV 테이블 때문에, 당신은 더 나은 가져 오기 또는 내보내기 단계는 CSV 테이블에 대해 사용하는 경우에만 작동합니다 일반적으로 InnoDB의 테이블 데이터를 넣어 것입니다.

NDB : (일명 NDBCLUSTER가) - 클러스터 데이터는 가동 시간 및 애플리케이션의 가용성의 최고 수준을 필요로이 엔진은 특히 적합합니다. 참고 : NDB 스토리지 엔진은 표준 MySQL의 5.6 버전에서 지원되지 않습니다. 현재 지원

MySQL 클러스터 버전 : MySQL 클러스터 NDB 7.1의 MySQL을 5.1 기준, MySQL 클러스터 NDB MySQL을 5.5 7.2의 기반으로, MySQL 클러스터 NDB MySQL을 5.6 7.3을 기반으로. 또한 MySQL 클러스터 NDB의 MySQL의 5.6에 따라 7.4은 현재 개발 중입니다.

병합 을 MySQL DBA 또는 그룹화되어 동일한 MyISAM 테이블의 일련의 현상을 허용 및 객체 참조로 넣어. 이와 같은 데이터웨어 하우스로서 매우 대규모 데이터 시나리오에 대한.

연합은 : MySQL 서버를 결합 다른 물리적 시스템의 복수에서 논리적 데이터베이스를 생성 할 수있는 기능을 제공합니다. 또는 분산 데이터 시나리오에 대한 시장.

예 : 이 스토리지 엔진이 예제는 새로운 스토리지 엔진의 MySQL의 소스를 저장하는 방법을 설명 쓰기 시작합니다. 그것은 관심이있는 개발자를 대상으로합니다. 이 스토리지 엔진은 패자는하지 않는 것입니다. "스텁." 당신은 테이블을 만들려면이 엔진을 사용할 수 있지만, 당신은 그들로부터 어떤 인덱스를 검색 할 수있는에 데이터를 저장할 수 없습니다.

둘째, 일반적으로 사용되는 스토리지 엔진 및 사용 시나리오

이노 : 트랜잭션 처리 응용 프로그램, 외래 키 지원, 행 수준 잠금합니다. 완성도 것들에 대한 응용 프로그램이 상대적으로 높은 요구 사항, 또한 동시 조건의 일관성, 데이터 삽입 및 쿼리 작업에서 데이터 요구 사항이있는 경우, 또한 많은 업데이트를 포함하고 삭제 한 후 InnoDB 스토리지 엔진이 더 적합합니다. 또한 효율적 또한 트랜잭션의 무결성을 보장 할 수있는 잠금 삭제 및 업데이트로 인한 이노을 감소 커밋 및 데이터의 정확성 요구 사항에 대한 유사한 결제 시스템 또는 금융 시스템에 대한 롤백이 상대적으로 높은 시스템 적합한 선택입니다합니다.

의 MyISAM : 응용 프로그램이 읽기 및 삽입 작업이 기반의 경우 만 업데이트의 일부 및 삭제 작업 및 무결성, 트랜잭션의 덜 까다로운 동시성, 스토리지 엔진을 선택할 수 있습니다.

메모리 : 모든 데이터가 빠른 액세스를 제공, 신속하게 기록 및 기타 유사한 데이터 환경을 찾을 필요에 메모리에 저장됩니다. 메모리 단점 때문에 비정상 종료의 데이터베이스가 다음 데이터가 정상으로 복원 할 수 있지만 테이블의 크기에 대한 제한이 있다는 것입니다,하지만 데이터베이스가 종료되면, 데이터는 기억 상실에 저장됩니다.

추천

출처www.cnblogs.com/XuChengNotes/p/11588520.html