목록Database/MYSQL (24)
미스터 역마살
쿼리 힌트 Mysql 서버에서 사용 가능한 쿼리 힌트는 2가지로 구분 할수 있다 인덱스 힌트 옵티마이저 힌트 참고로 Mysql 5.7 버전까지는 힌트를 쓰더라도 옵티마이저가 힌트 외의 실행계획을 평가 하기 때문에 실행계회을 세우는 오버로드를 줄여 주지는 못한다. 다만 옵티마이저의 잘못된 실행계획을 방지할 순 있다. 8.0 부터는 힌트 작성시 옵티마이저가 실행계획을 만들지 않기 때문에 오버로드 측면에서는 도움이 된다. 인덱스 힌트 인덱스 힌트는 Mysql 5.6 이전까지 사용했었고 그 이후부터는 옵티마이저 힌트가 추가됨에 따라 옵티마이저 힌트 사용을 권고하고 있다. 인덱스 힌트를 사용하게 되면 ANSI SQL문법에 위배되며 Mysql 이 아닌 타 DBMS에서는 에러가 발생한다. 하지만 옵티마이저 힌트는 타..
Mysql 프로파일링 mysql은 기본적으로 비활성화(OFF)되어 있으므로 프로파일링을 진행하기 위해서는 활성화 작업을 해야함 show variables like 'profiling%'; * 결과 +------------------------+-------+ | Variable_name | Value | +------------------------+-------+ | profiling | OFF | | profiling_history_size | 15 | +------------------------+-------+ set profiling = 'ON'; 프로파일링 수행할 SQL 출력 SELECT 사원번호 FROM 사원 WHERE 사원번호 = 100000; * 결과 +----------+ | 사원번호 ..
확장된 실행 계획 다음은 확장된 실행계획을 알아보자 EXPLAIN FORMAT = TRADITIONAL 기본적인 실행계획은 EXPLAIN 키워드로 입력하며 기본 포맷은 TRADITIONAL이다. 따라서 명시하지 않아도 다음과 같이 기본적인 실행계획 정보가 출력됨 EXPLAIN FORMAT = TRADITIONAL SELECT * FROM 사원 WHERE 사원번호 BETWEEN 100001 AND 200000; * 결과 +----+-------------+-------+------------+-------+---------------+---------+---------+------+-------+----------+-------------+ | id | select_type | table | partiti..
실행 계획 확인하는 방법 실행계획을 확인 하는 키워드로는 EXPLAIN, DESCRIBE, DESC가 있다. 3가지 중 어떤 키워드를 사용해도 실행계획의 결과는 같다. EXPLAIN [SQL문]; DESCRIBE [SQL문]; DESC [SQL문]; 위와 같은 실행 계획에서 이를 해석하는 방법에 대해서 알아보자 실행 계획 각 항목별 해석 방법은 아래와 같다. id 실행 계획을 순서를 표시하는 숫자 id 값이 같은 경우 위에서 아래의 순서로 테이블을 읽으며 조인이 이루어짐 id순서가 따라서 테이블 접근을 의미하지는 않음( 예를 들어 id 1,2,3,4 가 있을 경우 1,2,3,4 순서로 테이블 접근은 아니라는 의미) 아래의 경우 첫번째 행과 두번째 행의 ID값이 같으므로 처음 조인이 발생했다고 해석할 수 ..
Audit Log란? Audit(감사) Log란 보안상 특정 이슈로 어떤 사용자의 행위를 확인하고 싶을때 설정하는 로그로써 접속, 쿼리 등 모든 정보를 로깅할 수 있다. Mysql Enterprise 버전에는 기본으로 Audit Plugin이 들어있어 설치이후 로깅을 시작하면 되고, Community버전은 Mariadb의 audit plugin을 받아 설치하여야 한다. Audit Log 설정 AUDIT 설치 /*================================================================================ * Audit Plugin이 설치 되어있는지 확인 *========================================================..
Mysql 모니터링 스크립트 아래 스크립트는 S전자 보안포털 운영 프로젝트에서 모니터링 업체가 Mysql 모니터링시 사용하는 스크립트 이다. OS Disk Usage - 기준값 : 80% 이하 OS Disk Usage - 기준값 : 80% 이하 Mysql Data Size SELECT ROUND(SUM(A.DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024 / 1024, 2 ) AS SIZE_GB FROM information_schema.tables A Memory Usage # Mysql Total Memory (현재 Mysql에서 사용하는 메모리 사용률) ps awxuf | grep mysqld | grep -v grep | grep -v sage | awk '{print $..