MySQL INT/BITINT ZEROFILL - 정수형 타입에서 ZEROFILL

보통의 DBMS의 컬럼형에서 ()괄호를 사용할 경우 ()괄고 안에는 숫자의 의미는 사용할 수 있는 자리수나 바이트의 제한 또는 정수부 와 소수부를 구분하는 등의 길이의 의미로 많이 사용 하고 있습니다. MySQL의 정수형 컬럼인 INT,BIGINT,SMALLINT,TINYINT 은 이미 고정형 데이터 타입으로 ()괄호의 사용이 위에서…

MySQL 쿼리 프로파일링(Query Profiling)

쿼리 프로파일링(Query Profiling) MySQL 에서 쿼리가 처리되는 동안 각 단계별 작업에 시간이 얼마나 걸렸는지 확인 할 수 있는 기능을 제공하며 쿼리 프로파일링(Query Profiling) 기능을 제공하고 있습니다.쿼리 프로파일링(Query Profiling) 는 MySQL 5.1 이상에서 부터 지원 합니다. 기본적으로 활성화돼 있지 않기 때문에…

MySQL8 invisible columns

1. invisible columns 개요MySQL 은 MySQL 8.0.23부터 invisible columns을 지원합니다 invisible columns은 일반적으로 쿼리에 숨겨져 있지만 명시 적으로 참조되는 경우 액세스 할 수 있습니다. invisible columns 이 유용 할 수 있는 경우에 대한 설명으로 응용 프로그램이 "SELECT * FROM 테이블"…

MySQL8 해시조인(Hash Join)

1. Hash Join MySQL 에서는 오랜 기간 조인의 Method가 nested loop join 방식만 지원되어왔습니다  물론 nested loop join에서 driven table 로의 random access 를 줄이는 BKA (Batched Key Access )을 사용하거나 join 의 대상을 작은 block 으로 나누어 block 하나씩 join…

MySQL NOW()와 SYSDATE()의 차이

MySQL 에서는 현재 시각을 조회하는 함수로 NOW() 와 SYSDATE 함수가 있으며 현재의 시간을 반환하는 같은 기능을 수행합니다 SELECT NOW();SELECT SYSDATE(); 다만 2개의 시간 조회 함수는 사용하기에 따라 시간 다른 결과와 다른 성능적 요건이 발생되게 됩니다 1. 시간 결과 차이 먼저…

MySQL Delete 문 성능 - IN절에서 서브쿼리 사용시 - Multiple Delete / CTAS

  1. MySQL 에서의 서브쿼리 MySQL 은 전통적으로 서브쿼리 최적화에 약한 면모를 보이고 있습니다 5.6 버전에서 개선되어( subquery materialization) 서브쿼리가 내부적으로 조인 형태로 변경되어 성능적 개선이 되었으나 상황에 따라서 서브쿼리는 DEPENDENT SUBQUERY 타입으로 실행되는 경우가 많습니다 그렇기 때문에 가급적 서브쿼리나 인라인…

MySQL 8.0.14 CHECK TABLE - Parallel Query Execution - CHECK TABLE 병렬 쿼리 수행

1. MySQL - Parallel QueryMySQL 에서는 예전부터 Native Parallel Query를 실행할 수 있는 기능이 추가되기를 많은 사람들은 희망 하였습니다 하지만 오랜 시간동안 기능이 반영되지는 못하였습니다. 아직까지 MySQL은 Parallel 쿼리 기능 지원이 부족하였고 그에 따라 다른 형태인 병렬 bash 스크립트 에서 Apache…

MySQL - Percona Toolkit - ONLINE-SCHEMA-CHANGE

Percona Toolkit Percona Toolkit 는 Percona 사에서 개발한 오픈소스 기반의 MySQL/MariaDB 의 유틸리티로 기술지원 시 사용하던 유용한 기능의 유틸리티 도구를 하나로 묶은 패키지 입니다. 이러한 Toolkit은 일일이 수동으로 작업하기 다소 복잡하거나 어려운 작업들을 단순하고 수월하게 할수 있게 도와주는 유용한 도구…