하나 : 개요
- 먼저 알아야 할 MySQL의 전체 인프라
-
2 : MySQL의의 계층
- MySQL의은으로 분할 될 수 개의 부분 서버 계층 및 저장 층 엔진
- 서버 층
- 등 커넥터, 쿼리 캐시, 분석, 최적화, 액추에이터를 포함하여 서버 층 의 MySQL의 핵심 서비스의 대부분을 커버 .
- 및 (등과 날짜, 시간 및 수학 암호화 기능 등)의 모든 기본 함수
- 스토리지 엔진 기능 등등 프로 시저, 트리거, 뷰, 및,이 층에 구현 된 모든 걸쳐.
- 스토리지 엔진 층
- 스토리지 엔진 층은 데이터 저장 및 검색 할 책임이있다.
- 그것은 이노,의 MyISAM, 메모리 및 기타 스토리지 엔진을 지원하는 모드 플러그인 아키텍처이다.
- 지금 가장 일반적으로 사용되는 스토리지 엔진은에서 이노입니다 MySQL은 5.5.5 버전이되었다 기본 스토리지 엔진 .
세 : 실행 과정
--1 : 커넥터
-는 TCP 핸드 셰이크를 완료 한 후 셸에서 MySQL의 서비스 (MySQL의 -h $ IP -P $ 포트 -u의 $ 사용자 -p)를 연결하는 경우, 커넥터는 인증 시작
- 사용자 이름이나 암호가 잘못되면, 당신은 오류에 "사용자에 대한 액세스가 거부"를 받게되며, 클라이언트 프로그램은 실행을 종료합니다.
- 사용자 이름 및 암호 인증, 권한은 당신이 가진 권한있는 발견 할 것이다 테이블에 연결합니다.
- 그 후, 상기 접속 허가에 달려 접속 허가 판단 로직 읽을 .
- PS
-에 따라 인증이 여기에, 알 수 인증 기관을, 그것은 연결의 MySQL의 시간에 완료됩니다.
- 따라서, 관리자가 연결된 상태에서 권한을 수정하는 경우에도, 그것은 기존의 연결에 영향을 미치지 않습니다. 링크 한 후 새로운 상태 권한을 사용합니다.
- 각 연결의 연결 상태
- 쇼 PROCESSLIST;
- 어떤 운동이 너무 긴없는 경우 클라이언트는 연결이 자동으로 해제됩니다.
- 시간이 파라미터가 설정된 타임 아웃 (wait_timeout) 제어, 디폴트 값을 8 시간이다 .
쿼리 동안 MySQL 서버에 분실 연결 : - 연결이 깨진 후, 클라이언트가 다시 요청을 전송하면 오류 알림을받을 것이다.
- 계속하려면이 시간, 우리는 다시 연결 한 다음 요청을 수행해야합니다.
- 긴 링크 / 짧은 연결
- 데이터베이스 내에서, 긴 연결은 동일한 연결을 사용하고있다, 클라이언트가 요청을 계속 한 경우 연결이 성공을 의미합니다.
- 짧은 연결이 쿼리에 몇 번 연결이 끊어 각 실행의 완료를 의미, 다음 쿼리를 재 작성하십시오.
- PS :
- 긴 링크는 과도한 메모리 사용 MySQL의 빠른 성장으로 이어질 것입니다.
- 때문입니다 실행시 메모리 MySQL을 임시로 사용이 내부 연결 개체를 관리하는 것입니다.
- 이러한 리소스는 것입니다 연결하는 경우에만 해제 .
- 긴 링크가 축적 된 경우, 메모리 풋 프린트로 이어질 수 그래서는 너무 큰 시스템 (KMS를 죽일 강제로 MySQL의 이상을 다시 시작 있는지 현상에서).
- 해결
- 정기적으로 긴 연결하고 다시 시작을 분리합니다.
- 당신이 MySQL을 5.7 이상을 사용하는 경우, 연결 자원을 다시 초기화 mysql_reset_connection을 수행하여, 각각의 수술 후 비교적 큰을 수행 할 수 있습니다.
- 2 : 쿼리 캐시
- MySQL은 얻을 쿼리 요청합니다 첫 번째 쿼리 캐시 쿼리 후
- 당신이 캐시에 직접 키 쿼리를 찾을 수 있다면, 그 값은 클라이언트에 직접 반환됩니다.
-하지만 대부분의 경우 나는 왜, 쿼리 캐시를 사용하지 않도록 조언을 것? 쿼리 캐시는 종종 좋은보다 더 많은 해이기 때문이다.
- 쿼리 캐시 만료 매우 자주, 한 테이블에 대한 업데이트가있는 한,이 모든 테이블 쿼리 캐시에 비워 될 것입니다.
- 그 결과 당신이 그것을 사용하지 않는, 계속 고군분투 가능성, 그것은 비워 전체 업데이트했다.
- 쿼리 캐시 히트 비율은 매우 낮은 업데이트 스트레스 데이터베이스입니다 .
- 당신의 사업은 정적 테이블을 가지고하지 않는 한, 그것은 때마다 업데이트됩니다.
- 예를 들어, 시스템 구성 테이블은 사용 쿼리 캐시에 적합이 테이블에 쿼리합니다.
- MySQL의 8.0에서 캐시 기능을 완전히 포기했다.
--3 : 분석기
- SQL 문을 구문 분석
- SQL의 전체 동작의 분석