mysql 데이터베이스의 스토리지 엔진에 대한 자세한 설명

韦小宝
풀어 주다: 2018-03-14 10:27:08
원래의
2038명이 탐색했습니다.

이 기사에서는 mysql 데이터베이스의 스토리지 엔진에 대해 설명하므로 mysql 데이터베이스의 스토리지 엔진과 우리 엔진에 대해 잘 모르는 학생들은 mysql 데이터베이스의 스토리지 엔진에 대한 이 기사를 살펴보는 것이 좋습니다!

최적화 구조 소개:

type meaning
스토리지 레이어 스토리지 엔진, 필드 유형 선택, 패러다임 디자인
디자인 레이어 index, 캐시, 파티션( 하위 테이블)
Architecturelayer 다중 mysql 서버 설정, 읽기-쓰기 분리(마스터-슬레이브 모드)
sql 문 레이어 여러 SQL 문으로 목적을 달성할 수 있는 경우 고성능을 선택하세요. 그리고 빠른 SQL 문

스토리지 엔진

스토리지 엔진: 우리가 사용하는 데이터는 특정 기술을 통해 데이터베이스에 저장됩니다. 데이터베이스의 데이터는 파일 형태로 하드 디스크에 저장됩니다. 기술은 여러 가지가 있으며 각 기술에는 고유한 성능과 기능이 있습니다. 데이터를 저장하는 기술과 기능의 조합을 "스토리지 엔진"이라고 합니다.

  • mysql에서 자주 사용되는 스토리지 엔진: MyisamInnodbetc.

  • mysql 데이터베이스의 스토리지 엔진에 대한 자세한 설명

    데이터베이스 데이터는 다양한 스토리지 엔진에 저장되며 모든 기능은 현재 스토리지 엔진과 관련되어 있습니다. 프로젝트의 필요와 특성에 따라 다양한 스토리지 엔진을 선택해야 합니다.

  • mysql에서 지원되는 모든 스토리지 엔진 보기:
    mysql 데이터베이스의 스토리지 엔진에 대한 자세한 설명

innodb

데이터베이스의 각 데이터 테이블에 대한 데이터 설계 정보의 세 가지 측면: 테이블 구조, 데이터, 인덱스

  • 기술적 특징: 지원 트랜잭션,로드 레벨 잠금, 외국 키 감소 구조, 데이터, 인덱스의 물리적 저장

innodb 데이터 테이블 : mysql 데이터베이스의 스토리지 엔진에 대한 자세한 설명

  • table 구조 파일 :


    mysql 데이터베이스의 스토리지 엔진에 대한 자세한 설명

  • 이 유형의 데이터 및 인덱스의 물리적 파일 위치:

mysql 데이터베이스의 스토리지 엔진에 대한 자세한 설명

모든 innodb 테이블 데이터 및 인덱스 정보는 다음 ibdata1 파일에 저장됩니다.

  • innodb 유형 테이블 저장 공간:

기본적으로 각 innodb 테이블의 데이터 및 인덱스에 대해 별도의 파일 저장소가 생성되지 않습니다. mysql 데이터베이스의 스토리지 엔진에 대한 자세한 설명

  • 각 innodb 테이블이 고유한 데이터 및 인덱스를 갖도록
변수

를 설정합니다. 파일: mysql 데이터베이스의 스토리지 엔진에 대한 자세한 설명

  • order2 데이터 테이블 다시 만들기:

mysql 데이터베이스의 스토리지 엔진에 대한 자세한 설명

  • 이때 order2 데이터 테이블에는 별도의 데이터 및 인덱스 저장 파일이 있습니다.

mysql 데이터베이스의 스토리지 엔진에 대한 자세한 설명

  • 나중에 innodb_file_per_table의 설정 상태가 어떻게 변경되더라도 order2의 데이터와 인덱스는 독립적인 저장 위치를 ​​갖습니다.

mysql 데이터베이스의 스토리지 엔진에 대한 자세한 설명

데이터 저장 순서
  • innodb 테이블 데이터의 저장은 작성된 각 데이터를 기본 키 순서.


  • 이 기능은 이러한 유형의 테이블에 대한 쓰기 작업이 더 느린지 확인합니다.

  • 트랜잭션, 외래 키

이 유형의 데이터 테이블은 트랜잭션과 외래 키를 지원합니다mysql 데이터베이스의 스토리지 엔진에 대한 자세한 설명

트랜잭션: http://blog.csdn.net/change_any_time/article/details/79488020

외래 키: 두 개의 데이터 테이블 A와 B, 그리고 테이블 B의 기본 키는 테이블 A의 일반 필드입니다. 테이블 A에서 볼 때 이 일반 필드는 테이블의 "외부 키"입니다. 외래 키 사용에 대한 "제약 사항"이 있습니다.
    제약 조건: 위 두 테이블의 경우 테이블 B의 데이터를 먼저 쓴 다음 테이블 A의 데이터와 테이블 A의 외래 키 값을 테이블 B의 기본 키 id 값에서 가져와야 하며 해당 범위를 초과할 수 없습니다. .
  • "외래 키"는 제약 조건으로 인해 실제 프로젝트에서는 거의 사용되지 않습니다.


동시성
  • 이 유형의 테이블은 동시성이 매우 높습니다. 여러 사람이 동시에 데이터 테이블을 운영할 때 데이터 테이블을 운영할 때 데이터 내용이 임의로 변경되는 것을 방지하려면 " 잠겼어"

    이 유형의 잠금 수준은 행 잠금입니다. 현재 작업 중인 레코드만 잠깁니다.

    Myisam

    구조, 데이터 및 인덱스는 독립적으로 저장됩니다. 이 유형의 데이터 테이블에는 테이블 구조, 데이터 및 인덱스에 대한 독립적인 저장 파일이 있습니다.

    • Myisam 데이터 테이블 만들기
      mysql 데이터베이스의 스토리지 엔진에 대한 자세한 설명

    • 각 myisam 데이터 테이블 구조, 데이터 및 인덱스는 모두 독립적인 저장 파일을 가집니다
      mysql 데이터베이스의 스토리지 엔진에 대한 자세한 설명

    테이블 파일 유형 의미
    *.frm 테이블 구조 파일
    *. MYD 테이블 데이터 파일
    *.MYI

    테이블 인덱스 파일

    특징: 독립된 저장소 파일을 별도로 백업하고 복원할 수 있습니다.

    데이터 저장 순서

    • 마이삼 테이블 데이터의 저장은 쓰여진 각 데이터를 자연스러운 순서로 배열하는 것입니다.
      mysql 데이터베이스의 스토리지 엔진에 대한 자세한 설명

      이 기능은 이러한 유형의 테이블 쓰기 작업이 더 빠르다는 것을 결정합니다.

    Concurrency

    이 기능은 이러한 유형의 테이블에 대한 쓰기 작업이 더 빠르다는 것을 결정합니다.

    압축 메커니즘

    데이터 테이블에 많은 데이터가 포함되어 있는 경우 저장 공간을 절약하기 위해 테이블을 압축해야 합니다.

    • 현재 데이터 테이블의 데이터 복사:
      mysql 데이터베이스의 스토리지 엔진에 대한 자세한 설명

    • 연속 복사로 인해 order3 데이터 테이블의 데이터가 200만 개가 넘습니다.
      mysql 데이터베이스의 스토리지 엔진에 대한 자세한 설명

    • 200만 개를 저장하는 해당 물리적 ​​파일 정보 조각 크기가 40MB를 초과합니다:
      mysql 데이터베이스의 스토리지 엔진에 대한 자세한 설명

    order3 데이터 테이블의 데이터 압축을 시작합니다

    • 압축 도구: myisampack.exe 테이블 이름
      mysql 데이터베이스의 스토리지 엔진에 대한 자세한 설명

    • 재구축 인덱스: myisamchk. exe -rq 테이블 이름
      mysql 데이터베이스의 스토리지 엔진에 대한 자세한 설명

    • 압축 해제 도구: myisamchk.exe –unpack 테이블 이름
      mysql 데이터베이스의 스토리지 엔진에 대한 자세한 설명

    • order3 테이블 정보가 공간의 60%로 압축됩니다.
      mysql 데이터베이스의 스토리지 엔진에 대한 자세한 설명

    • order3 데이터 테이블이 압축됩니다. 그러나 인덱스는 사라졌습니다:
      mysql 데이터베이스의 스토리지 엔진에 대한 자세한 설명

    • 인덱스를 다시 작성하십시오:
      mysql 데이터베이스의 스토리지 엔진에 대한 자세한 설명

    • 인덱스가 실제로 다시 작성되었습니다:
      mysql 데이터베이스의 스토리지 엔진에 대한 자세한 설명

    • 데이터 테이블 새로 고침: 플러시 테이블 테이블 이름
      mysql 데이터베이스의 스토리지 엔진에 대한 자세한 설명

    • 발생 : 압축된 데이터 테이블은 읽기 전용 테이블이며 정보를 쓸 수 없습니다:
      mysql 데이터베이스의 스토리지 엔진에 대한 자세한 설명

    압축된 데이터 테이블은 자주 쓸 수 없다는 특징이 있지만 고정된 내용을 가진 데이터 테이블은 압축할 수 있습니다. 및 지역 정보 등)
    데이터를 써야 하는 경우: 데이터 테이블의 압축을 풀고 데이터를 쓴 다음 압축합니다.

    • order3 데이터 테이블의 압축을 풀어 데이터를 쓸 수 있도록 합니다. (압축 해제와 동시에 자동으로 인덱스 재구축)
      mysql 데이터베이스의 스토리지 엔진에 대한 자세한 설명

    • 데이터 압축 해제 완료:
      mysql 데이터베이스의 스토리지 엔진에 대한 자세한 설명

    • 플러시 작업 실행 및 압축 해제된 데이터 업데이트: flush table  表名; 이 작업은 order3.MYD.00996D46.deleted의 압축된 백업 파일도 삭제합니다.
      mysql 데이터베이스의 스토리지 엔진에 대한 자세한 설명

    • order3이 지금 계속 쓰세요 데이터:
      mysql 데이터베이스의 스토리지 엔진에 대한 자세한 설명

    innodb 스토리지 엔진: 수정 및 삭제에 적합
    Myisam 스토리지 엔진: 쿼리 및 쓰기에 적합

    Archive

    innodb 스토리지 엔진: 수정 및 삭제에 적합
    Myisam 스토리지 엔진: 쿼리 및 쓰기

    memory

    메모리 스토리지 엔진에 적합합니다. 작업 속도가 매우 빠르며 서버 전원이 꺼지면 스토리지 엔진의 데이터가 손실됩니다. 즉시.

    스토리지 엔진 선택

    Myisam 및 innodb

    1. 대부분의 경우 웹사이트에는 "읽기 및 쓰기" 작업이 많기 때문에 Myisam 유형을 선택하는 것이 적합합니다(예: dedecms, phpcms 콘텐츠 관리 시스템) (뉴스 웹사이트), discuz 포럼)

    2. 비즈니스 로직에 대한 특정 요구 사항이 있는 웹 사이트(사무실 웹 사이트, 쇼핑몰)는 innodb를 선택하는 것이 적합합니다(Mysql5.5의 기본 스토리지 엔진은 innodb입니다)



위 내용은 mysql 데이터베이스의 스토리지 엔진에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿