MySQL 아키텍처 구성요소란 무엇입니까?
이 문서에서는 MySQL 아키텍처 구성 요소를 소개합니다. 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.
전체 아키텍처
1. 커넥터
커넥터는 주로 클라이언트와의 연결 설정, 권한 확인 및 연결 관리를 담당합니다. show processlist 명령을 사용하여 연결 정보를 볼 수 있습니다. 사용자 연결이 성공적으로 생성되면 권한 정보가 메모리로 읽혀집니다. 나중에 사용자 권한이 수정되면 새로 고치지 않으면 적용되지 않습니다.
연결의 경우 오랫동안(유휴 상태) 명령이 수신되지 않으면 커넥터는 일정 시간이 지난 후 링크를 끊습니다. 이 시간은 wait_timeout 매개변수에 의해 제어되며 기본값은 8시간입니다.
커넥터의 연결은 긴 연결과 짧은 연결로 구분됩니다.
긴 연결: 연결이 성공한 후 클라이언트가 동일한 연결을 사용하도록 요청합니다.
- 짧은 연결: 각 연결이 끝날 때마다 연결이 끊어집니다. 요청이 다시 실행되면 연결이 다시 설정됩니다
평상시에는 자주 반복적으로 연결을 생성하는 오버헤드를 피하기 위해 일반적으로 긴 연결을 사용합니다. 연결을 끊지 않고 오랫동안. 그러나 연결은 사용 중에 차지하는 일부 메모리를 관리하며 연결이 끊어지면 연결과 함께 해제된다는 점에 유의해야 합니다. 연결이 끊기지 않고 오랫동안 처리 없이 계속 누적되면 과도한 메모리 사용량이 발생하여 시스템에 의해 강제로 종료될 수 있습니다. 일반적으로 두 가지 해결 방법이 있습니다.
-
정기적으로 긴 연결을 끊고, 일정 시간이 지난 후 또는 많은 메모리를 차지하는 쿼리를 실행한 후 연결을 끊고, 이로 인해 메모리가 해제되고, 쿼리가 필요할 때 연결을 다시 생성합니다
-
5.7 이후 버전에서는 mysql_reset_connection을 사용하여 재연결 및 권한 확인 없이 연결 리소스를 다시 초기화하고 연결이 생성된 상태로 복원할 수 있습니다. 동시에 테이블 잠금 해제, 임시 테이블 삭제, 세션에 설정된 변수 재설정 등의 다른 효과도 있을 것입니다.
2. 쿼리 캐시
참고: 쿼리 캐시는 이후 폐지되었습니다. 버전 8.0
연결이 성공적으로 생성되었습니다. 이후에는 SQL 문을 실행할 수 있습니다. 그러나 쿼리 캐시가 켜져 있으면 실제로 SQL을 분석하기 전에 캐시에서 쿼리가 쿼리됩니다. 직접 반환됩니다. 쿼리 캐시는 키-값 구조입니다. 여기서 Key는 SQL 문이고 Value는 해당 쿼리 결과입니다. 캐시가 누락되면 후속 쿼리 작업이 계속됩니다. 쿼리가 완료된 후 결과는 쿼리 캐시에 저장됩니다.
쿼리 캐시는 왜 삭제되나요? 쿼리 캐싱은 일반적으로 득보다 실이 더 많기 때문입니다. 테이블이 업데이트되면 해당 테이블에 해당하는 쿼리 캐시가 지워지며, 자주 업데이트되는 테이블의 경우 쿼리 캐시가 매우 자주 무효화되어 기본적으로 캐시 업데이트에 따른 오버헤드도 발생합니다. 기본적으로 변경되지 않은 데이터 테이블의 경우 시스템 구성 테이블과 같은 쿼리 캐싱을 사용하도록 선택할 수 있습니다. 외부 캐싱도 사용합니다.
query_cache_type 매개변수를 통해 쿼리 캐시를 구성할 수 있습니다. 이 매개변수에는 다음과 같은 3가지 선택적 값이 있습니다.
0: 쿼리 캐시 끄기
1: 쿼리 캐시 켜기
2 : SQL_CACHE 키워드를 사용할 때 쿼리 캐시를 사용하는 경우, 예를 들어 select SQL_CACHE * from t where
3. 분석기
쿼리 캐시가 적중되지 않으면 실제로 SQL을 실행해야 합니다. 그리고 실행 전에 SQL을 구문 분석해야 합니다. 이 구문 분석은 주로 어휘 분석과 구문 분석의 두 단계로 나뉩니다.
어휘 분석: SQL에서 select, from, 테이블 이름, 필드 이름 등의 키워드를 추출합니다.
문법 분석: 어휘 분석 결과와 일부 문법을 기반으로 SQL 문법이 적법한지 확인합니다. MySQL에서 정의한 규칙에 따라 추상 구문 트리(AST)가 결국 생성됩니다
4. 최적화 프로그램
최적화 프로그램은 분석기가 생성한 AST를 입력으로 사용하여 SQL을 최적화하고 최적화 프로그램이 간주하는 것을 생성합니다. 실행자에게 전달되는 최적의 실행 계획이 실행됩니다. 최적화 프로세스에는 SQL의 논리적 변환과 비용 계산이 포함됩니다.
논리적 변환은 Java의 정적 컴파일 시간 최적화와 유사하며, SQL 변환 전후에 일관된 실행 결과를 보장하기 위해 SQL을 "단순화"합니다. 예를 들어, 1=1이고 a.id = 2인 경우는 a.id = 2인 경우와 동일할 수 있습니다.
비용 계산의 주요 목적은 인덱스 사용 여부, 어떤 인덱스를 사용할지, 다중 테이블 연결 시 어떤 순서를 사용할지 등 SQL 실행 방법을 선택하는 것입니다. 비용은 서비스 계층 비용과 엔진 계층 비용으로 구분됩니다. 서비스 계층 비용은 주로 CPU와 관련되고, 엔진 계층 비용은 주로 디스크 I/O와 관련됩니다. MySQL 5.7에서는 이 두 가지 비용을 구성하기 위해 mysql.server_cost와 mysql.engine_cost 두 개의 시스템 테이블을 도입합니다. 테이블에 구성되는 것은 임시 테이블 생성, 정렬, 페이지 읽기 등 다양한 작업에 해당하는 비용입니다.
Optimizer는 생성된 쿼리 계획과 위의 두 가지 비용 구성을 기반으로 쿼리 계획의 최종 비용을 계산하고, 여러 쿼리 계획 중 비용이 가장 작은 것을 선택하여 Executor에 실행합니다. 그러나 때로는 비용이 가장 적다고 해서 반드시 실행 시간이 가장 짧은 것은 아니라는 점에 유의해야 합니다.
5. Executor
Executor는 옵티마이저가 선택한 쿼리 계획에 따라 SQL을 실행하기 전에 요청한 사용자에게 해당 쿼리 권한이 있는지 확인하고 마지막으로 MySQL 엔진 계층에서 제공하는 인터페이스를 호출합니다. SQL 문을 실행하고 결과를 반환합니다. 쿼리 캐싱이 활성화된 경우 결과는 쿼리 캐시에도 저장됩니다.
관련 추천: "mysql 튜토리얼"
위 내용은 MySQL 아키텍처 구성요소란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

웹 응용 프로그램에서 MySQL의 주요 역할은 데이터를 저장하고 관리하는 것입니다. 1. MySQL은 사용자 정보, 제품 카탈로그, 트랜잭션 레코드 및 기타 데이터를 효율적으로 처리합니다. 2. SQL 쿼리를 통해 개발자는 데이터베이스에서 정보를 추출하여 동적 컨텐츠를 생성 할 수 있습니다. 3.mysql은 클라이언트-서버 모델을 기반으로 작동하여 허용 가능한 쿼리 속도를 보장합니다.

Docker에서 MySQL을 시작하는 프로세스는 다음 단계로 구성됩니다. MySQL 이미지를 가져와 컨테이너를 작성하고 시작하고 루트 사용자 암호를 설정하고 포트 확인 연결을 매핑하고 데이터베이스를 작성하고 사용자는 데이터베이스에 모든 권한을 부여합니다.

Laravel은 웹 응용 프로그램을 쉽게 구축하기위한 PHP 프레임 워크입니다. 설치 : Composer를 사용하여 전 세계적으로 Laravel CLI를 설치하고 프로젝트 디렉토리에서 응용 프로그램을 작성하는 등 다양한 기능을 제공합니다. 라우팅 : Routes/Web.php에서 URL과 핸들러 간의 관계를 정의하십시오. 보기 : 리소스/뷰에서보기를 작성하여 응용 프로그램의 인터페이스를 렌더링합니다. 데이터베이스 통합 : MySQL과 같은 데이터베이스와 상자 외 통합을 제공하고 마이그레이션을 사용하여 테이블을 작성하고 수정합니다. 모델 및 컨트롤러 : 모델은 데이터베이스 엔티티를 나타내고 컨트롤러는 HTTP 요청을 처리합니다.

작은 응용 프로그램을 개발할 때 까다로운 문제가 발생했습니다. 가벼운 데이터베이스 운영 라이브러리를 신속하게 통합해야합니다. 여러 라이브러리를 시도한 후에는 기능이 너무 많거나 호환되지 않는다는 것을 알았습니다. 결국, 나는 내 문제를 완벽하게 해결하는 YII2를 기반으로 단순화 된 버전 인 Minii/DB를 발견했습니다.

기사 요약 :이 기사는 Laravel 프레임 워크를 쉽게 설치하는 방법에 대한 독자들을 안내하기위한 자세한 단계별 지침을 제공합니다. Laravel은 웹 애플리케이션의 개발 프로세스를 가속화하는 강력한 PHP 프레임 워크입니다. 이 자습서는 시스템 요구 사항에서 데이터베이스 구성 및 라우팅 설정에 이르기까지 설치 프로세스를 다룹니다. 이러한 단계를 수행함으로써 독자들은 라벨 프로젝트를위한 탄탄한 토대를 빠르고 효율적으로 놓을 수 있습니다.

MySQL을 우아하게 설치하는 열쇠는 공식 MySQL 저장소를 추가하는 것입니다. 특정 단계는 다음과 같습니다. 피싱 공격을 방지하기 위해 MySQL 공식 GPG 키를 다운로드하십시오. MySQL 리포지토리 파일 추가 : rpm -uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm yum repository cache : yum 업데이트 설치 mysql : yum 설치 mysql-server startup startup mysql 서비스 : systemctl start mysqlctl start mysqlctl.

MySQL 및 Phpmyadmin은 강력한 데이터베이스 관리 도구입니다. 1) MySQL은 데이터베이스 및 테이블을 작성하고 DML 및 SQL 쿼리를 실행하는 데 사용됩니다. 2) PHPMYADMIN은 데이터베이스 관리, 테이블 구조 관리, 데이터 운영 및 사용자 권한 관리에 직관적 인 인터페이스를 제공합니다.

다른 프로그래밍 언어와 비교할 때 MySQL은 주로 데이터를 저장하고 관리하는 데 사용되는 반면 Python, Java 및 C와 같은 다른 언어는 논리적 처리 및 응용 프로그램 개발에 사용됩니다. MySQL은 데이터 관리 요구에 적합한 고성능, 확장 성 및 크로스 플랫폼 지원으로 유명하며 다른 언어는 데이터 분석, 엔터프라이즈 애플리케이션 및 시스템 프로그래밍과 같은 해당 분야에서 이점이 있습니다.
