MySQL의 InnoDB 스토리지 엔진


--MySQL 구조는 두 부분으로 구성
1.MySQL 서버 계층
2 스토리지 엔진 층

- 참고 : 스토리지 엔진 층에 앞서 MySQL 서버 계층에 속하는

5.7 버전의 MySQL 5.1은 더 큰 변화없는, 유일한 변화는 스토리지 엔진의 소형 버전, MySQL 서버 계층이 변경되지 않은 것입니다

MySQL은 5.5가 5.5을 포함하면, 기본 스토리지 엔진의 이노입니다 , 기본 스토리지 엔진은 테이블을 기반으로,의 MyISAM하지만 이전 버전에서 5.5 (이노 엔진 =)
의 필요성이 테이블을 작성하는 경우, 버전 이전의 5.5 그렇다면 엔진 = 이노를 지정하거나 엔진 테이블의 MyISAM은 저장에서 생성
기본적으로 5.5 이후 5.1이며, 기간 발판입니다

 

MySQL의 성분 :
1. 부품 연결 풀
2. 관리 서비스 및 공구 어셈블리
3.SQL 인터페이스 컴포넌트
4. 쿼리 분석기 컴포넌트
제 최적화 컴포넌트
(6)의 버퍼 성분
7. 플러그 스토리지 엔진
(8)의 실제 파일

스토리지 엔진은하지 데이터베이스에 테이블을 기반으로

코어는 스토리지 엔진의 MySQL이며

      MySQL의 테이블 스토리지 엔진

MySQL의 플러그 스토리지 엔진 아키텍처는 표준 관리 및 서비스 지원의 범위를 제공
하지 않는 데이터베이스에 테이블을 기반으로 스토리지 엔진을
특정 용도에 따라 적합한 스토리지 엔진 선택

OLTP : 온라인 온라인 트랜잭션 시스템, --- 읽기와 덜 쓰기는 같은 : 전기 공급, 행 수준 잠금, 외래 키 지원 지원
, 온라인 분석 시스템 --- 접촉의 작은 기회 : OLAP을

      여러 유형의 스토리지 엔진의 소개

A는 InnoDB 스토리지 엔진
온라인 트랜잭션 처리 (OLTP) 애플리케이션의 측면 1. 지원 서비스, 외래 키에 대한 행 수준 잠금, 지원 지원
다중 버전 동시성 제어 MVCC를 통해 높은 동시성을 달성하고, 표준 SQL을 달성하기 위해 2 사 분리 레벨 (기본 반복)
3. 버퍼 (삽입 버퍼)를 제공하는 보조 기록 (번 쓰기), 적응 해시 인덱스 (AHI), 프리 - 읽기 (미리 읽기)
테이블에 저장된 데이터 4. 이노 클러스터하여 상기 기본 키 테이블 정의는, 만약 각 테이블하는 것은 기본 키 저장의 순서로 저장되며, 표시되지
이노는 각 행의 6 바이트 ROWID를 생성하는 기본 키로,

1> 지원부, 로우 레벨 잠금 지원 외래 키
2> 다중 버전 동시성 제어 (MVCC) 달성 높은 동시성
3> SQL 네 표준 분리 레벨 : 복 읽기, 비 반복 읽기, 직렬 판독, 더티 판독
4> 세 가지 특성이 InnoDB의 : INSERT 버퍼, 두 번 쓰기, AHI
5>를 시스템이 자동으로 생성하지 않는 새로운 각 테이블에 대한 기본 키를 지정해야합니다

두, MYISAM 스토리지 엔진

1. 거래, 테이블 잠금, 온라인 분석 처리 OLAP의 전체 텍스트 인덱싱, 운영 속도를 지원하지 않습니다
MYD 및 MYI 구성 2. MYISAM 스토리지 엔진 테이블, 인덱스 파일을 저장하는 데 사용되는 데이터를 저장 파일, myi에 사용 MYD
3. MySQL의 5.0 기본 256T 단일 테이블 데이터에 의해 지원 시작
MyISAM 테이블 스토리지 엔진, MySQL 데이터베이스 캐시에만 인덱스 파일, 캐시 데이터 파일을 사용하여 데이터 캐시 알고리즘을 구별 자체가 완료 될 때까지 운영 체제에 인계되어 LUR 대부분의 데이터베이스 4.

1> 거래, 테이블 수준 잠금, OLAP 온라인 분석 시스템의 전체 텍스트 인덱싱, 운전 속도를 지원하지 않습니다
2> MYD 저장 데이터 파일을, MYI 색인 파일 저장
처음부터 3> MySQL5.0를, MySQL은 테이블에서 256T 하나의 기본 데이터를 지원
4> MyISAM 테이블 스토리지 엔진, MySQL 데이터베이스 캐시에만 인덱스 파일, 캐시 데이터 파일은 데이터베이스의 대부분은 데이터 캐시 알고리즘 LUR을 사용하는 자체가 완료 될 때까지 운영 체제에 다른 핸드 오버

세 상기 NDB 스토리지 엔진
메모리 (1)의 모든 데이터, 그래서 주 빠른 키 조회 속도가 데이터베이스 향상시킬 수 선형성 성능, 고 가용성 고성능 클러스터 시스템
스토리지 엔진 2.NDB 동작에 연결된 MySQL 데이터베이스 계층에서 이루어진다 대신에 기록 층의 엔진을 수행하므로, 연결 작업은 많은 복잡한 네트워크 오버 헤드가 필요

MySQL 클러스터 사용이의 MySQL 클러스터를 선택하는 이유 (전기 공급이 사용되지 않습니다)하지, NDB 스토리지 엔진, 스토리지 엔진이 직접 건너 뛰고 데이터를 호출입니다

포는 메모리 스토리지 엔진
데이터베이스 다시 시작하거나 충돌이 발생하면 메모리에 저장된 테이블의 데이터 1, 테이블의 데이터가 손실되고, 임시 데이터 저장 임시 테이블, 데이터웨어 하우스 차원 테이블에 적합한
기본 해시 인덱스가 아닌 B 트리 인덱스

가변 길이 필드 VARCHAR를 저장할 때 2 만 테이블 잠금을 지원, 텍스트 및 블롭 유형을 지원하지 않는 동시 성능 차이는, 정상 필드 숯 방식에 따라 메모리 공간의 낭비

- 참고 : 비트 메모리 테이블, 임시 테이블 이해, 가난한 동시 성능, 메모리 공간이 낭비된다

다섯, 아카이브 스토리지 엔진에만 삽입하고 쿼리를 선택 지원;

여섯, 연합 스토리지 엔진은 원격 MySQL 데이터베이스 서버의 테이블에 데이터를 저장하지만, 지점하지 않습니다

세븐, 마리아 스토리지 엔진, 캐싱 데이터와 인덱스 파일, 라인 잠금, 제공 MVCC 기능, 트랜잭션 및 비 트랜잭션 보안 옵션을 지원,
더 나은 처리 성능 문자 유형 BLOB

마리아 스토리지 엔진은, mariadb 기본 스토리지 엔진이며, 이노가 동일 MVCC (다중 버전 동시성 제어)이며

 

--- 요약
이노 세 가지 특징 :
삽입 버퍼 (삽입 버퍼), 보조 쓰기 (더블 쓰기), 적응 적 해시 인덱스 (잘한다)

클러스터 스토리지 수집

프로덕션 환경에서 시스템 성능을 소비, 그렇지 않으면 시스템이 UID를 생성, 기본 키를 만들려면 새 테이블을 지정해야합니다

이노 디비 동시성 강한 있기 때문에 행 수준 잠금

의 MyISAM : MYD 데이터 파일을 저장하는 단계; 디스크에 MYI 색인 파일, 캐시에만 색인 데이터 나 파일을
InnoDB의 : , IBD 모든 파일이 조립하는 데이터 및 인덱스 캐시, 너무 빨리 속도 이노


[루트 @의 RC-MySQL을 MySQL의] #에 LL 유저. *
-rw-RW ---- 1 개의 MySQL MySQL은 10,684 2016년 4월 28일 user.frm
-rw-RW ---- 1 개의 MySQL MySQL의 7500 년 5 월 22 16:44 사용자. MYD의
-rw-RW ---- 1 mysql을 mysql을 4096 5월 22일 16시 44분 user.MYI

FRM 테이블 구조이고, 이노의 MyISAM에 접미사이다
MYD의 MYISAM 스토리지 엔진 데이터 파일
의 인덱스 파일 때문에 MYI MYISAM 저장
내부 파일 확장자 IBD, 데이터와 인덱스 이노 스토리지 엔진
이노 테이블 데이터는 색인이 인덱스는 데이터


--- 요약 :
이노과의의 MyISAM의 차이
1. 트랜잭션이 (InnoDB의 지원이의 MyISAM은 지원되지 않음)
2. 잠금 단위 (InnoDB의 행 레벨 잠금, MyISAM 테이블 수준 잠금)
3. 동시 (이노 지원 다중 버전 동시성 제어 -MVCC 얻을 높은 동시성)
4. 캐시 파일 (이노 디비 캐시 데이터 및 인덱스의 MyISAM 전용 캐시 지수는하지 않습니다 캐시 데이터)
5. 파일 이름 접미사 (이노 : IBD;의 MyISAM MYD MYI)이
5.6 이후 6.5.6 전체 텍스트 인덱싱을 지원이 포함되어 있지만 중국어 지원 (이노 전 5.6에서 전체 텍스트 인덱싱을 지원하지 않습니다)
5.5을 포함 ---- 5.5, 기본 스토리지 엔진의 이노입니다
---- (엔진 = InnoDB의), 그러나 이전 버전 5.5, 스토리지 엔진을 MyISAM, 테이블에 기초하여
수행 7.innodb 삭제 로우 레벨 잠금 때문에 삭제 라인으로 타임 라인 및 테이블 삭제하지 않는
한 다음의 MyISAM 전체 테이블을 삭제하고, 동일한 테이블의 테이블 구조를 재 작성
8.select 수 (*) ;
의 MyISAM이 있기 때문에, InnoDB의보다 빠른 카운터 들어오는있을 때, 데이터, 통계 및 카운터 InnoDB의 테이블은 할 필요가 전체 테이블 스캔

---- 문제
1.MySQL 전체 텍스트 인덱싱을 지원하지 않습니다?
5.6 쿼리 만이 아닌 중국을 전체 텍스트 인덱싱을 지원하기 시작했다,하지만
그들이 트랜잭션을 지원하지 않습니다 빠른 때문에 2.MySQL?
이노 디비 지원 서비스
3. 테이블이보다 큰 만입니다, MySQL의 성능이 크게 떨어질까요?
그것은이다,하지만 당신은 테이블 만, 서브 테이블보다 큰 내버려 둘 수 없어,
또는 바이 아키텍처 (프록시 모드)와 같은 구조로

 

추천

출처www.cnblogs.com/ss-33/p/11237897.html