일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- CKA 기출문제
- Spring
- APM
- minikube
- AWS EKS
- 티스토리챌린지
- aws
- Linux
- Java
- 코틀린 코루틴의 정석
- Pinpoint
- Elasticsearch
- PETERICA
- 오블완
- mysql 튜닝
- kotlin coroutine
- 정보처리기사실기 기출문제
- IntelliJ
- kotlin querydsl
- 기록으로 실력을 쌓자
- Kubernetes
- 정보처리기사 실기 기출문제
- MySQL
- CKA
- 공부
- CloudWatch
- kotlin spring
- 정보처리기사 실기
- kotlin
- AI
- Today
- Total
목록Database/SQL 튜닝 (6)
피터의 개발이야기
ㅁ 들어가며 ㅇ Mysql 인덱스를 튜닝하기 위해 정리하는 중 이동욱님의 글, [mysql] 인덱스 정리 및 팁을 보고 요약해서 정리해 보았습니다. ㅁ 인덱스란? 인덱스 == 정렬 인덱스란 데이터의 저장(INSERT, UPDATE, DELETE) 의 성능을 희생하고 그 대신에 데이터의 읽기 속도를 높이는 테이블의 동작속도(조회)를 높여주는 자료구조입니다. 예를 들어, 책 뒷편의 '찾아보기'에서 알고리즘을 찾아봅시다. ㄱ~ㅎ 정렬에서 ㅇ을 찾고, 아~이 정렬에서 알을 찾습니다. 이후 알고리즘을 색인하고 페이지 정보를 얻을 수 있습니다. 사전도 마찬가지입니다. 영단어를 검색하려면, 일단 알파벳 순에서 해당 알파벳 페이지로 이동하여 단어를 찾아가는 것이 책 전체를 뒤지는 것보다 빠르게 찾을 수 있습니다. ㅁ ..
ㅁ 개요ㅇ 파티션 작업 시 필요한 쿼리를 정리하였습니다. ㅁ 파티션 테이블 리스트 조회SELECT distinct TABLE_NAMEFROM INFORMATION_SCHEMA.PARTITIONSWHERE PARTITION_NAME is not null ; ㅁ 파티션 테이블별 용량 조회SELECT TABLE_SCHEMA, -- 스키마 TABLE_NAME, -- 테이블명 PARTITION_NAME, -- 파이션 이름 PARTITION_DESCRIPTION, -- 파이션 설명 TABLE_ROWS, -- 테이블 row 건수 ROUND(DATA_LENGTH/(1024*1024),2) AS 'D..
ㅁ 들어가며 [SQL튜닝] MySQL 쿼리 튜닝, 쿼리 실행계획, Explain에서 쿼리의 튜닝을 위한 Explain을 보는 방법과 Explain 컬럼을 분석하여 최적의 쿼리를 분석하는 방법을 공부하였다. 이번 글에서는 SQL 튜닝 책 4장과 5장을 공부하면서 튜닝의 방법들을 정리해 보았다. ㅁ Intellij의 확장된 Explain 활용방법 ㅇ Mysql 8.0.18 이상의 경우 Explain Analyze을 제공한다. ㅇ 위의 캡쳐에서 Explain Plan의 경우 EXPLAIN FORMAT=TREE Explain Plan(Raw)의 경우 EXPLAIN FORMAT=TRADITIONAL에 해당한다. 와 각각의 Raw 분석을 제공하고 있다. 튜닝을 학습하는 과정에서 개별 Explain를 살펴보고 각각의..
ㅁ 들어가며 백엔드개발을 하면서 DB SQL의 튜닝작업은 필수입니다. 쿼리 튜닝 공부를 위해 SQL 튜닝, Real MySQL를 보고 있는데요. 쿼리를 최적화 하기 위해서는 Explain를 잘 분석할 줄 알아야 합니다. 이번 글에서는 Explain의 컬럼과 그 요소들의 의미를 정리하였습니다. ㅁ Explain 보는 방법 Explain 명령어를 SQL 앞에 붙여 실행하면 쿼리의 실행계획을 볼 수 있습니다. 옵티마이저는 이 SQL을 해석하여 최적의 실행계획을 세웁니다. 하지만 항상 최적의 실행계획을 만들어 낼 수는 없습니다. 그래서 이를 보완하기 위해 Explain 명령어로 옵티마이저가 산출한 실행 계획(Explain)을 사용자가 확인할 수 있습니다. ㅇ 참조: SQL튜닝 123p, Real MySQL 41..
ㅁ 들어가며 [MySQL 튜닝] EXISTS를 이용한 SQL 튜닝에서 EXISTS를 통한 튜닝작업을 알아보았습니다. 하지만 EXISTS가 항상 성능을 향상시키는 것은 아닙니다. EXISTS와 동일한 작업을 수행할 수 있는 IN, INNER JOIN도 있지만 성능에는 차이가 있을 수 있습니다. 이 번 글에서 질의 조건 3가지(전체, 부서, 부서 외)를 나누어 는 IN, INNER JOIN, EXISTS 성능을 비교해 보았습니다. ㅁ 일러두기 ㅇ 쿼리 테스트를 위해 [MySQL] 실습환경 구성하기에서 생성한 MySQL이며, 버젼은 5.7.37입니다. ㅇ 테스트 데이터는 [MySQL] 대용량 샘플 데이터 사용하기에서 생성된 데이터를 사용하였습니다. ㅇ salaries 테이블: 2844047건 ㅇ dept_em..
ㅁ 개요 쿼리를 튜닝할 때에 가장 큰 요소는 색인데이터를 최소화 하는 방법이 있습니다. 이번 글에서는 EXISTS 구문을 통해서 불필요한 IO를 줄여 쿼리를 튜닝하는 방법을 정리해 보았습니다. ㅁ 일러두기 ㅇ 쿼리 테스트를 위해 [MySQL] 실습환경 구성하기에서 생성한 MySQL이며, 버젼은 5.7.37입니다. ㅇ categories(8 row)에 속한 products(77 row) 테이블을 샘플로 하였습니다. ㅁ EXISTS 연산자란? EXISTS 연산자는 서브쿼리에 데이터가 존재하는지 체크하고 존재할 경우 TRUE를 반환합니다. EXISTS 연산자는 IN 연산자와 비슷한 용도로 사용할 수 있으며, IN 연산자는 비교할 값을 직접 대입할 수 있지만 EXISTS 연산자는 서브쿼리만 사용할 수 있습니다...