MySQL은 현재 인터넷 기업 중 가장 널리 사용되는 데이터베이스 소프트웨어(DBMS)입니다. BAT, GOOGLE, FACEBOOK처럼 소규모로 시작하는 회사는 모두 MySQL을 비즈니스의 데이터 스토리지로 사용합니다. Alibaba Cloud는 MySQL의 클라우드 버전(Cloud Database RDS MySQL 버전)도 제공합니다. 이 기사 시리즈는 모든 사람이 MySQL을 더 잘 이해하고 데이터베이스 성능을 더 잘 활용하며 데이터 저장소를 더 효율적으로 만드는 데 도움이 되기를 바랍니다.
MySQL의 역사
MySQL은 오픈 소스 무료 소프트웨어이며, 소스 코드를 온라인에서 직접 얻을 수 있습니다. 지금까지 MySQL은 20년이 넘는 역사를 갖고 있습니다. 일반적인 이정표는 다음과 같습니다.
● 1996년에 소수의 사람들에게만 제공되었던 MySQL 1.0이 출시되었습니다. 1996년 10월 MySQL 3.11.1이 출시되었으며(MySQL에는 2.x 버전이 없음) 처음에는 Solaris에서 바이너리 버전만 제공되었습니다. 한 달 후 Linux 버전이 나타났습니다. 이후 2년에 걸쳐 MySQL은 차례로 다양한 플랫폼으로 포팅되었습니다.
● 1999년부터 2000년까지 스웨덴에 MySQL AB가 설립되어 Berkeley DB 엔진을 개발했습니다. BDB가 트랜잭션 처리를 지원하므로 그때부터 MySQL도 트랜잭션 처리를 지원하기 시작했습니다.
● 2001 V3.23: MyISAM 엔진 및 Innodb 엔진 프로토타입
● 2003 V4.0: 새로운 구문 기능, Innodb는 query_cache를 추가하여 표준 구성 요소가 됨
● 2006 V5.0: 뷰, 트리거, 저장 프로시저 및 기타 기능 추가
● 2008 V5.1: 파티션, 행 복제
● 2010 V5.5: Innodb가 기본 엔진으로 반동기 복제
● V5.6 Innodb 개선, 복제 기능 및 기타 개선
● V5.7에는 mariaDB와 같은 새로운 스토리지 엔진이 추가됩니다.
MySQL의 아키텍처
MySQL은 같은 시대의 데이터베이스와 동일하지 않지만 고유한 아키텍처를 채택합니다. 당나라 시인 두목의 유명한 시로 이 구조를 이해할 수 있습니다.
长安回望绣成堆,山顶千门次第开。 一骑红尘妃子笑,无人知是荔枝来。
세 가지 역할이 있습니다:
● 첩: 요구를 하고 리치를 먹는 책임
● Minister : 리치 수확 준비, 가져갈 경로, 공식 문서 발행 등을 담당합니다.
● Courier : 리치 운송을 담당
이는 MySQL 아키텍처의 세 가지 역할에 해당합니다: 클라이언트, 처리 엔진, 실행 엔진
아키텍처 다이어그램을 사용하여 표현하면 다음과 같습니다
● 클라이언트
는 첩의 역할과 동일합니다. 사용자는 클라이언트를 조작하여 요청을 발행합니다. 데이터 조회, 수정, 추가, 삭제
● 처리 엔진
처리 엔진은 SQL 문을 구문 분석하고 실행 계획을 생성하는 역할을 하는 장관의 역할에 해당합니다. 또한 최적화 시 주의할 수 있는 다음과 같은 책임도 담당합니다.
• 연결 및 스레드 관리 담당: 멀티스레딩 모델 사용, thread_cache_size 설정으로 기존 스레드 사용 가능
• 관리 담당 쿼리 캐시: 기성품 사용 결과적으로 결과 세트는 명령문 성능 테스트 시 sql_no_cache 힌트를 사용하여
● 스토리지 엔진
을 보호해야 합니다. 데이터의 실제 저장은 물론 데이터 읽기, 수정 및 기타 작업을 담당하는 택배사의 역할입니다. 다양한 스토리지 엔진은 실제 실행에서 서로 다른 특성을 나타냅니다. 이에 대해서는 이후 글에서 자세히 소개하겠습니다.
요약하자면 이것은 MySQL 아키텍처에 대한 개요입니다. 모든 사람에게 도움이 되기를 바랍니다.
위 내용은 MySQL 원칙과 최적화의 역사와 아키텍처에 대한 간략한 논의(1)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!