1. FullText Search(전문검색) 전문검색이란 게시물의 내용이나 제목 등과 같이 문장이나 문서의 내용에서 키워드를 검색하는 기능입니다. 전문검색은 이름이나 별명(닉네임) 과 같은 단어에서 일부만 일치하는 사용자를 검색하는 기능으로도 사용 할 수 있습니다. LIKE 기능과 같이 패턴 일치 검색 기능(양쪽에 %% 를 사용한)은…
[태그:] MySQL
쿼리 프로파일링(Query Profiling) MySQL 에서 쿼리가 처리되는 동안 각 단계별 작업에 시간이 얼마나 걸렸는지 확인 할 수 있는 기능을 제공하며 쿼리 프로파일링(Query Profiling) 기능을 제공하고 있습니다.쿼리 프로파일링(Query Profiling) 는 MySQL 5.1 이상에서 부터 지원 합니다. 기본적으로 활성화돼 있지 않기 때문에…
0. 포스팅 환경 포스팅에서는 아래의 환경에서 진행 하였습니다. OS: CentOS 7.8MySQL : 5.7.31MySQL data 경로 : /usr/local/mysql/dataMySQL replication 유저 : repl_userXtrabackup : 2.4.21 1. XtraBackup 설치 및 구성 1.1 Repository 구성 - Master/Slave 모두 수행먼저 xtrabackup 을 받기 위해서 repository…
1. invisible columns 개요MySQL 은 MySQL 8.0.23부터 invisible columns을 지원합니다 invisible columns은 일반적으로 쿼리에 숨겨져 있지만 명시 적으로 참조되는 경우 액세스 할 수 있습니다. invisible columns 이 유용 할 수 있는 경우에 대한 설명으로 응용 프로그램이 "SELECT * FROM 테이블"…
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 함수가 있으며 현재의 시간을 반환하는 같은 기능을 수행합니다 SELECT NOW();SELECT SYSDATE(); 다만 2개의 시간 조회 함수는 사용하기에 따라 시간 다른 결과와 다른 성능적 요건이 발생되게 됩니다 1. 시간 결과 차이 먼저…
1. MySQL 에서의 서브쿼리 MySQL 은 전통적으로 서브쿼리 최적화에 약한 면모를 보이고 있습니다 5.6 버전에서 개선되어( subquery materialization) 서브쿼리가 내부적으로 조인 형태로 변경되어 성능적 개선이 되었으나 상황에 따라서 서브쿼리는 DEPENDENT SUBQUERY 타입으로 실행되는 경우가 많습니다 그렇기 때문에 가급적 서브쿼리나 인라인…
0. 설치 정보 • 설치 환경 정보 - CentOS 8.3 - MySQL 8.0.21 ~ 8.0.23 포스팅에서는 패키지 설치(dnf) , 소스 컴파일 , 바이너리 압축 해제 형식 3가지에 대해서 기술되어 있습니다 설치하는 방식에 따라 버전이 8.0.21 ~ 8.0.23 이…
1. MySQL - Parallel QueryMySQL 에서는 예전부터 Native Parallel Query를 실행할 수 있는 기능이 추가되기를 많은 사람들은 희망 하였습니다 하지만 오랜 시간동안 기능이 반영되지는 못하였습니다. 아직까지 MySQL은 Parallel 쿼리 기능 지원이 부족하였고 그에 따라 다른 형태인 병렬 bash 스크립트 에서 Apache…
1. MySQL Hash Index Hash index 는 B-tree 만큼 일반적/범용적으로 사용되지는 않지만 고유의 기능과 특성을 가지고 있는 인덱스 오브젝트 입니다. Hash index 는 동등(equal =) 비교 검색시 사용 및 최적화 되어 있으며 범위나 FullText Search 나 정렬된 결과를 가져오는 목적으로는 사용할…