■ Connection 테이블 클라이언트가 MySQL 서버에 연결하면 특정 사용자 이름과 특정 호스트에서 연결됩니다. Performance Schema는 이러한 연결에 대한 통계를 제공하고 다음 테이블을 사용하여 계정 (사용자 및 호스트 조합) 및 사용자 이름 및 호스트 이름별로 개별적으로 추적합니다. accounts : 클라이언트 계정당 연결 통계 hosts : 클라이언트 호스트 이름당 연결 통계 users : 클라이언트 사용자 이름별 연결 통계 연결 테이블에서 계정의 의미는 사용자 및 호스트 값의 조합을 의미한다는 점에서 mysql시스템 데이터베이스의 MySQL grant tables(권한부여 테이블)에서의 의미와 유사합니다. grant tables의 경우 계정의 호스트 부분이 패턴이 될 수 있는 반..
■ Transaction 테이블 Performance Schema는 트랜잭션을 계측합니다. 이벤트 계층 구조 내에서 대기(Wait) 이벤트, 명령문(Statement) 이벤트, 스테이지(Stage) 이벤트와 같은 레벨에 존재합니다. • 설정방법 다음과 같은 계측기가 있습니다. 원하는 계측기에 ENABLED 컬럼을 YES, 타이머 정보까지 원한다면 TIMED컬럼을 YES로 변경합니다. SELECT * FROM performance_schema.setup_instruments WHERE NAME = 'transaction'; +-------------+---------+-------+ | NAME | ENABLED | TIMED | +-------------+---------+-------+ | transa..
■ Statement Event 테이블 Perofmance Schema 계측기에서 명령문 실행을 보여줍니다. 명령문 이벤트는 이벤트 계층 구조의 높은 레벨에서 발생합니다. 이벤트 계층 구조 내에서 대기(Wait) 이벤트, 트랜잭션(Transaction) 이벤트, 명령문(Statement)와 같은 레벨의 이벤트입니다. • 설정방법 다음과 같은 계측기들이 있습니다. 원하는 계측기에 ENABLED 컬럼을 YES, 타이머 정보까지 원한다면 TIMED컬럼을 YES로 변경합니다. mysql> SELECT * FROM performance_schema.setup_instruments WHERE NAME LIKE 'statement/%'; +-------------------------------------------..
■ Stage Event 테이블 Performance Schema 계측기 도구중 단계(Stage)는 명령문 구문 분석, 테이블 열기 또는 파일 정렬 작업 수행과 같은 명령 실행 프로세스를 보여줍니다. 스테이지는 SHOW PROCESSLIST에 의해 표시되거나 INFORMATION_SCHEMA.PROCESSLIST 테이블에 표시되는 스레드 상태에 해당합니다. 상태 값이 변경되면 Stage가 시작되고 끝납니다. 이벤트 계층 구조 내에서 대기(Wait) 이벤트,트랜잭션(Transaction) 이벤트, 명령문(Statement) 이벤트와 같은 레벨에 존재합니다. • 설정방법 다음과 같은 계측기들이 있습니다. 원하는 계측기에 ENABLED 컬럼을 YES, 타이머 정보까지 원한다면 TIMED컬럼을 YES로 변경합니..
■ Wait Event 테이블 종류 Performance schema에서 대기(waits) 도구는 시간이 걸리는 이벤트를 보여줍니다. 이벤트 계층 구조 내에서, 대기 이벤트는 스테이지(Stage) 이벤트, 명령문(Statement) 이벤트, 트랜잭션(Transaction) 이벤트와 같은 레벨의 이벤트입니다. • 설정방법 mysql> SELECT * FROM performance_schema.setup_instruments WHERE NAME LIKE 'wait/%'; +----------------------------------------+---------+-------+ | NAME | ENABLED | TIMED | +----------------------------------------+----..
■ Setup Tables setup_actors : 새로운 포그라운드 스레드(foreground threads : 접속 클라이언트 혹은 서버)에 대한 모니터링을 초기화하는 방법 setup_consumers : 이벤트 정보를 보내고 저장할 수 있는 대상 setup_instruments : 이벤트를 수집 할 수있는 계측된 개체의 클래스 setup_objects : 모니터링해야하는 개체 setup_timers : 현재 이벤트 타이머 ■ Instance Tables ▶︎ cond_instances 테이블 : 조건 동기화 개체 인스턴스 cond_instances 테이블은 서버가 실행되는 동안 성능 스키마에 표시되는 모든 조건을 나열합니다. 조건은 특정 이벤트가 발생했음을 알리기 위해 코드에서 사용되는 동기화 메..
■ performance schema 상태 모니터링. 다음과 같은 쿼리로 performance schema의 상태를 확인할 수 있습니다. mysql> SHOW STATUS LIKE 'perf%'; +-----------------------------------------------+-------+ | Variable_name | Value | +-----------------------------------------------+-------+ | Performance_schema_accounts_lost | 0 | | Performance_schema_cond_classes_lost | 0 | | Performance_schema_cond_instances_lost | 0 | | Performance..
■ Performance Schema 소개 MySQL 성능 스키마는 낮은 수준에서 MySQL 서버 실행을 모니터링하는 기능입니다. 성능 스키마에는 다음과 같은 특성이 있습니다. - 성능 스키마는 런타임에 서버의 내부 실행을 검사하는 방법을 제공합니다. PERFORMANCE_SCHEMA 스토리지 엔진 및 performance_schema 데이터베이스를 사용하여 구현됩니다. 성능 스키마는 주로 성능 데이터에 중점을 둡니다. 이는 메타 데이터 검사에 사용되는 INFORMATION_SCHEMA와 다릅니다. - 성능 스키마는 서버 이벤트를 모니터링합니다. "이벤트"는 시간이 걸리고 타이밍 정보를 수집 할 수 있도록 계측된 서버가 수행하는 모든 작업입니다. 일반적으로 이벤트는 함수 호출, 운영 체제 대기, 구문 분..
■ mysqlpump 소개 mysqlpump 클라이언트 유틸리티는 논리 백업을 수행합니다. 논리백업을 수행할 때 백업을 테이블 하나하나 순차적으로 백업하는게 아니라 동시에 쓰레드를 여러개 생성하여 병렬로 백업을 받게 됩니다. 그만큼 속도가 빠릅니다. 지금부터 mysqlpump의 특징에 대해 알아보겠습니다. ■ mysqlpump 기능 • 덤프 프로세스의 속도를 높이기 위해 데이터베이스 및 데이터베이스 내 개체의 병렬 처리 • 덤프 할 데이터베이스 및 데이터베이스 개체 (테이블, 저장 프로그램, 사용자 계정)를보다 효과적으로 제어 • 사용자 계정을 mysql 시스템 데이터베이스에 삽입하는 대신 계정 관리 명령문 (CREATE USER, GRANT)으로 덤프 • 압축 된 출력 생성 기능 • 진행률 표시기 (값..
MySQL에는 여러가지 Timeout 종류가 있습니다. 세션에서, 서버에서 혹은 접속시도중이나 기타 여러가지 상황에서의 Timout값이 존재합니다. 각 파라미터마다 특성이 있는데 이 관계를 잘 이해하고 설정해야 원치않는 상황에서 갑자기 세션이 종료되는 상황을 방지하거나, 필요없이 오래 접속되어 있는 세션을 종료시킬 수 있습니다. 이 Timeout 파라미터의 종류들에 대해 알아보겠습니다. * connect_timeout : mysqld 서버가 접속실패로 응답하기 전에 연결 패킷을 기다리는 시간( 초). 기본값은 10 초입니다. connect_timeout값을 늘리면 클라이언트에서 Lost Connection 오류가 자주 발생하는 경우 도움이 될 수 있습니다. Lost connection to MySQL s..
MySQL 서버는 작업에 대한 정보를 제공하는 많은 상태 변수를 유지합니다. SHOW [GLOGL | Session] Status 문을 사용하여 변수와 값을 볼 수 있습니다. 선택적 글로벌 키워드는 모든 연결에 걸쳐 값을 집계하고 Session(세션)은 현재 연결에 대한 값을 표시합니다. mysql> SHOW GLOBAL STATUS; +-----------------------------------+------------+ | Variable_name | Value | +-----------------------------------+------------+ | Aborted_clients | 0 | | Aborted_connects | 0 | | Bytes_received | 155372598 | |..
MySQL 서버는 다른 SQL 모드에서 작동 할 수 있으며 sql_mode 시스템 변수의 값에 따라이 모드를 다른 클라이언트에 다르게 적용 할 수 있습니다. DBA는 사이트 서버 운영 요구 사항과 일치하도록 전역 SQL 모드를 설정할 수 있으며 각 응용 프로그램은 세션 SQL 모드를 자체 요구 사항으로 설정할 수 있습니다. 모드는 MySQL이 지원하는 SQL 구문과 수행하는 데이터 유효성 검사에 영향을줍니다. 따라서 다른 환경에서 MySQL을보다 쉽게 사용하고 다른 데이터베이스 서버와 함께 MySQL을 사용할 수 있습니다. + SQL 모드 설정 + 가장 중요한 SQL 모드 + SQL 모드의 전체 목록 + 조합 SQL 모드 + 엄격한 SQL 모드 + IGNORE 키워드와 엄격한 SQL 모드의 비교 + ..