Mysql 아키텍처 및 스토리지 엔진
1.1 데이터베이스 및 인스턴스 정의
데이터베이스: frm, MYD, MYI, ibd, NDB 엔진 사용 시 파일 끝 , 데이터베이스 파일이 메모리에 배치됩니다.
예: 백그라운드 스레드와 공유 메모리로 구성됩니다. 공유 메모리는 공유할 준비가 되어 백그라운드에서 실행될 수 있으며, 데이터베이스 인스턴스는 실제로 데이터베이스를 작동시키는 것입니다.
인스턴스와 데이터베이스 간의 관계는 일대일 대응입니다.
MySql은 단일 프로세스 다중 스레드 아키텍처 데이터베이스이며 인스턴스는 시스템에서 프로세스로 작동합니다.
오라클의 매개변수 파일인 spfile과 유사하지만, 오라클과 달리 매개변수 파일이 없으면 인스턴스 시작 시 데이터베이스가 실패하게 된다.
1.2 MySQL 구성:
연결 풀 구성 요소
관리 서비스 및 도구 구성요소
SQL 인터페이스 구성 요소
쿼리 분석기 구성 요소
구성 요소 최적화
캐시 구성요소
플러그인 스토리지 엔진
실제 파일
스토리지 엔진은 데이터베이스가 아닌 테이블 구조를 기반으로 합니다.
1.3Mysql 스토리지 엔진
자신만의 스토리지 엔진을 작성하기 위한 Mysql 사전 정의 스토리지 엔진 인터페이스
InnoDB 스토리지 엔진
사물을 지원합니다. 설계 목표는 주로 행 잠금 설계가 특징이며, 외래 키를 지원하고 Oracle과 유사한 비잠금 읽기를 지원합니다. 기본적으로 읽기 및 쓰기 작업은 잠금을 생성하지 않습니다.
논리적 테이블스페이스에 배치된 스토리지 엔진 테이블은 독립된 ibd 파일에 배치됩니다.
테이블에 저장하기 위해 집계 접근 방식이 채택됩니다.
MyISAM 스토리지 엔진
사물, 테이블 디자인을 지원하지 않으며 전체 텍스트 색인 을 지원합니다. 일부 OLAP 데이터베이스 애플리케이션의 경우
버퍼 풀은 일부 인덱스 파일을 캐시 하고 데이터 파일을 버퍼링하지 않습니다.
엔진 테이블은 MYD와 MYI로 구성됩니다. MYD는 데이터 파일을 저장하는 데 사용되며, MYI는 인덱스 파일을 저장하는 데 사용됩니다. myismpack 도구를 사용하여 파일을 추가로 압축할 수 있습니다.
NDB 엔진
클러스터 스토리지 엔진으로, 모든 데이터가 메모리에 저장되는 공유형 클러스터 구조로, 기본 키 검색 속도가 매우 빠릅니다.
그리고 NDB 데이터 스토리지 노드를 추가하면 데이터베이스 성능이 선형적으로 향상되어 가용성이 뛰어난 고성능 클러스터 시스템이 구축됩니다.
메모리 엔진
테이블의 데이터는 메모리에 저장됩니다. 데이터베이스가 다시 시작되거나 충돌하면 테이블의 모든 데이터가 사라집니다. 임시 테이블 보관에 적합
기본적으로 B+ 트리 인덱스가 아닌 해시 인덱스가 사용됩니다.
테이블 잠금만 지원되며 동시성 성능은 상대적으로 낮습니다.
아카이브 스토리지 엔진
압축 및 저장을 위해 zlib 알고리즘을 사용합니다. 로그 정보 등 과도한 데이터를 저장하는 데 매우 적합
행 잠금을 사용하여 동시 삽입 작업 구현
주로 고속 삽입 및 압축 기능을 제공합니다.
연합 스토리지 엔진
엔진 테이블은 데이터를 저장하지 않으며 MySQL 데이터베이스 서버만 가리킵니다. 이기종 데이터베이스의 테이블은 지원하지 않습니다.
마리아 스토리지 엔진
원래 MyiSAM 스토리지 엔진을 대체하고 Mysql의 기본 엔진이 됩니다.
캐시된 데이터 및 인덱스 파일 지원, 행 잠금 설계 적용, MVCC 기능 제공, 트랜잭션 및 비트랜잭션 보안 옵션 지원
쇼 엔진을 통해 mysql 데이터베이스가 지원하는 스토리지 엔진을 쿼리합니다.
1.4 Mysq 연결
Mysql 데이터베이스 인스턴스와 통신하는 연결 프로세스입니다.
일반적으로 사용되는 통신 방법: 파이프, 명명된 파이프, 명명된 이름, TCP/IP 소켓, UNIX 도메인 소켓
TCPIP:
mysql -h192.168.0.0.1 -u 데이비드 -p
Mysql은 권한 뷰 를 확인하여 요청된 IP가 MySQL 인스턴스에 연결할 수 있는지 여부를 결정합니다.
명명된 파이프와 공유 메모리
mysql구성 파일에서 --enable>name-pipe 시작
공유 메모리를 제공하고 구성 파일에 --shard-Memory 구현을 추가합니다.
유닉스 소켓
mysql -udavid -S /tmp/mysql.sock
[관련 추천]
위 내용은 Mysql의 스토리지 엔진 및 아키텍처 튜토리얼 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!