이 기사에서는 mysql 데이터베이스의 스토리지 엔진에 대해 설명하므로 mysql 데이터베이스의 스토리지 엔진과 우리 엔진에 대해 잘 모르는 학생들은 mysql 데이터베이스의 스토리지 엔진에 대한 이 기사를 살펴보는 것이 좋습니다!
type | meaning |
---|---|
스토리지 레이어 | 스토리지 엔진, 필드 유형 선택, 패러다임 디자인 |
디자인 레이어 | index, 캐시, 파티션( 하위 테이블) |
Architecturelayer | 다중 mysql 서버 설정, 읽기-쓰기 분리(마스터-슬레이브 모드) |
sql 문 레이어 | 여러 SQL 문으로 목적을 달성할 수 있는 경우 고성능을 선택하세요. 그리고 빠른 SQL 문 |
스토리지 엔진: 우리가 사용하는 데이터는 특정 기술을 통해 데이터베이스에 저장됩니다. 데이터베이스의 데이터는 파일 형태로 하드 디스크에 저장됩니다. 기술은 여러 가지가 있으며 각 기술에는 고유한 성능과 기능이 있습니다. 데이터를 저장하는 기술과 기능의 조합을 "스토리지 엔진"이라고 합니다.
mysql에서 자주 사용되는 스토리지 엔진: Myisam
或Innodb
etc.
데이터베이스 데이터는 다양한 스토리지 엔진에 저장되며 모든 기능은 현재 스토리지 엔진과 관련되어 있습니다. 프로젝트의 필요와 특성에 따라 다양한 스토리지 엔진을 선택해야 합니다.
mysql에서 지원되는 모든 스토리지 엔진 보기:
데이터베이스의 각 데이터 테이블에 대한 데이터 설계 정보의 세 가지 측면: 테이블 구조, 데이터, 인덱스
기술적 특징: 지원 트랜잭션,로드 레벨 잠금, 외국 키 감소 구조, 데이터, 인덱스의 물리적 저장
innodb 데이터 테이블 :
이 유형의 데이터 및 인덱스의 물리적 파일 위치:
innodb 유형 테이블 저장 공간:
기본적으로 각 innodb 테이블의 데이터 및 인덱스에 대해 별도의 파일 저장소가 생성되지 않습니다.
를 설정합니다. 파일:
이 기능은 이러한 유형의 테이블에 대한 쓰기 작업이 더 느린지 확인합니다.
이 유형의 데이터 테이블은 트랜잭션과 외래 키를 지원합니다
트랜잭션: http://blog.csdn.net/change_any_time/article/details/79488020 외래 키: 두 개의 데이터 테이블 A와 B, 그리고 테이블 B의 기본 키는 테이블 A의 일반 필드입니다. 테이블 A에서 볼 때 이 일반 필드는 테이블의 "외부 키"입니다. 외래 키 사용에 대한 "제약 사항"이 있습니다.이 유형의 잠금 수준은 행 잠금입니다. 현재 작업 중인 레코드만 잠깁니다.
구조, 데이터 및 인덱스는 독립적으로 저장됩니다. 이 유형의 데이터 테이블에는 테이블 구조, 데이터 및 인덱스에 대한 독립적인 저장 파일이 있습니다.
Myisam 데이터 테이블 만들기
각 myisam 데이터 테이블 구조, 데이터 및 인덱스는 모두 독립적인 저장 파일을 가집니다
테이블 파일 유형 | 의미 |
---|---|
*.frm | 테이블 구조 파일 |
*. MYD | 테이블 데이터 파일 |
*.MYI | 테이블 인덱스 파일 |
마이삼 테이블 데이터의 저장은 쓰여진 각 데이터를 자연스러운 순서로 배열하는 것입니다.
이 기능은 이러한 유형의 테이블 쓰기 작업이 더 빠르다는 것을 결정합니다.
이 기능은 이러한 유형의 테이블에 대한 쓰기 작업이 더 빠르다는 것을 결정합니다.
데이터 테이블에 많은 데이터가 포함되어 있는 경우 저장 공간을 절약하기 위해 테이블을 압축해야 합니다.
현재 데이터 테이블의 데이터 복사:
연속 복사로 인해 order3 데이터 테이블의 데이터가 200만 개가 넘습니다.
200만 개를 저장하는 해당 물리적 파일 정보 조각 크기가 40MB를 초과합니다:
order3 데이터 테이블의 데이터 압축을 시작합니다
압축 도구: myisampack.exe 테이블 이름
재구축 인덱스: myisamchk. exe -rq 테이블 이름
압축 해제 도구: myisamchk.exe –unpack 테이블 이름
order3 테이블 정보가 공간의 60%로 압축됩니다.
order3 데이터 테이블이 압축됩니다. 그러나 인덱스는 사라졌습니다:
인덱스를 다시 작성하십시오:
인덱스가 실제로 다시 작성되었습니다:
데이터 테이블 새로 고침: 플러시 테이블 테이블 이름
발생 : 압축된 데이터 테이블은 읽기 전용 테이블이며 정보를 쓸 수 없습니다:
압축된 데이터 테이블은 자주 쓸 수 없다는 특징이 있지만 고정된 내용을 가진 데이터 테이블은 압축할 수 있습니다. 및 지역 정보 등)
데이터를 써야 하는 경우: 데이터 테이블의 압축을 풀고 데이터를 쓴 다음 압축합니다.
order3 데이터 테이블의 압축을 풀어 데이터를 쓸 수 있도록 합니다. (압축 해제와 동시에 자동으로 인덱스 재구축)
데이터 압축 해제 완료:
플러시 작업 실행 및 압축 해제된 데이터 업데이트: flush table 表名
; 이 작업은 order3.MYD.00996D46.deleted의 압축된 백업 파일도 삭제합니다.
order3이 지금 계속 쓰세요 데이터:
innodb 스토리지 엔진: 수정 및 삭제에 적합
Myisam 스토리지 엔진: 쿼리 및 쓰기에 적합
innodb 스토리지 엔진: 수정 및 삭제에 적합
Myisam 스토리지 엔진: 쿼리 및 쓰기
메모리 스토리지 엔진에 적합합니다. 작업 속도가 매우 빠르며 서버 전원이 꺼지면 스토리지 엔진의 데이터가 손실됩니다. 즉시.
대부분의 경우 웹사이트에는 "읽기 및 쓰기" 작업이 많기 때문에 Myisam 유형을 선택하는 것이 적합합니다(예: dedecms, phpcms 콘텐츠 관리 시스템) (뉴스 웹사이트), discuz 포럼)
비즈니스 로직에 대한 특정 요구 사항이 있는 웹 사이트(사무실 웹 사이트, 쇼핑몰)는 innodb를 선택하는 것이 적합합니다(Mysql5.5의 기본 스토리지 엔진은 innodb입니다)
위 내용은 mysql 데이터베이스의 스토리지 엔진에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!