일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- IntelliJ
- CKA 기출문제
- AWS EKS
- CKA
- aws
- 정보처리기사실기 기출문제
- Pinpoint
- Spring
- 정보처리기사 실기 기출문제
- minikube
- kotlin
- Linux
- 티스토리챌린지
- PETERICA
- kotlin coroutine
- AI
- MySQL
- mysql 튜닝
- 정보처리기사 실기
- 기록으로 실력을 쌓자
- 공부
- APM
- 오블완
- kotlin spring
- Java
- Elasticsearch
- Kubernetes
- kotlin querydsl
- CloudWatch
- 코틀린 코루틴의 정석
- Today
- Total
목록Database (35)
피터의 개발이야기
ㅁ 방법 요약 # root 로컬 접속 mysql -u root -p # 호스트 접속(도메인) mysql -h peterica.iptime.org -P 3307 -u {user} -p # 호스트 Database 접속 mysql -h peterica.iptime.org -P 3307 -u {user} -p {database_name} # 호스트 접속(ip) mysql -h 127.0.0.1 -P 3307 -u {user} -p ㅇ대문자 구분해야 주의!! -P는 대문자다. ㅁ들어가며 사용자 비밀번호 바꾸려면 root로 들어가야 하는데, 맨날 까먹어서 정리해 놓음. docker로 만들어 놔서 docker -> 컨테이너 -> mysql cli로 접속해야 한다. update... [Mysql] brew mysql ..
ㅁ 개요ㅇ 파티션 작업 시 필요한 쿼리를 정리하였습니다. ㅁ 파티션 테이블 리스트 조회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..
ㅁ 개요 이전 글인 SQL 연습을 위한 실습 사이트에 대해서 작성하였다. 이번에는 로컬 Docker에서 MySQL 환경을 구성하고 샘플 데이터를 적재하는 과정을 정리하였다. MySQL 5.7 설치과정은 [MySQL] 실습환경 구성하기, Mysql Docker 설치, 5.7을 참조하세요. ㅁ MySQL 설치 $ docker run -d -p 3308:3306 \ # 로컬 3308포트를 컨테이너 3306포트로 맴핑 -e MYSQL_ROOT_PASSWORD=strong-password \ # 비밀번호 설정 -v /Volumes/500GB/data/mysql80:/var/lib/mysql \ # 컨테이너의 mysql폴더를 로컬에 마운트하여 데이터가 삭제되는 것을 예방한다. --name mysql_80 mysql..
ㅁ 들어가며 [MySQL 튜닝] EXISTS를 이용한 SQL 튜닝에서 EXISTS를 통한 튜닝작업을 알아보았습니다. 하지만 EXISTS가 항상 성능을 향상시키는 것은 아닙니다. EXISTS와 동일한 작업을 수행할 수 있는 IN, INNER JOIN도 있지만 성능에는 차이가 있을 수 있습니다. 이 번 글에서 질의 조건 3가지(전체, 부서, 부서 외)를 나누어 는 IN, INNER JOIN, EXISTS 성능을 비교해 보았습니다. ㅁ 일러두기 ㅇ 쿼리 테스트를 위해 [MySQL] 실습환경 구성하기에서 생성한 MySQL이며, 버젼은 5.7.37입니다. ㅇ 테스트 데이터는 [MySQL] 대용량 샘플 데이터 사용하기에서 생성된 데이터를 사용하였습니다. ㅇ salaries 테이블: 2844047건 ㅇ dept_em..
ㅁ 들어가면서 MySQL의 용량을 분석하기 위한 쿼리를 정리하였습니다. update... 댓글의 질문 때문에 확인한 결과, 테이블이 뷰인 경유 용량과 건수는 null로 나타난다. ㅁ 데이터베이스 용량 확인 SELECT table_schema AS 'Database', ROUND(SUM(data_length+index_length)/1024/1024, 1) AS 'Size(MB)' FROM information_schema.tables WHERE table_schema not in ('sys', 'mysql', 'information_schema', 'performance_schema') GROUP BY table_schema ORDER BY 2 DESC; ㅁ 전체 용량 확인 SELECT ROUND(SUM..
ㅁ 개요 MySQL을 공부하면서 대용량 샘플 데이터가 필요할 때가 있습니다. 이를 위해 MySQL 홈페이지에서 샘플데이터를 제공합니다. 이번 글에서는 샘플데이터의 종류와 설치 방법에 대해서 정리해 보았습니다. ㅁ Example Databases Title DB Download Guide Page PDF employee data (large dataset, includes data and test/verification suite) GitHub View US Ltr | A4 world database TGZ | Zip View US Ltr | A4 world_x database TGZ | Zip View US Ltr | A4 sakila database TGZ | Zip View US Ltr | A4 ai..
ㅁ 개요 쿼리를 튜닝할 때에 가장 큰 요소는 색인데이터를 최소화 하는 방법이 있습니다. 이번 글에서는 EXISTS 구문을 통해서 불필요한 IO를 줄여 쿼리를 튜닝하는 방법을 정리해 보았습니다. ㅁ 일러두기 ㅇ 쿼리 테스트를 위해 [MySQL] 실습환경 구성하기에서 생성한 MySQL이며, 버젼은 5.7.37입니다. ㅇ categories(8 row)에 속한 products(77 row) 테이블을 샘플로 하였습니다. ㅁ EXISTS 연산자란? EXISTS 연산자는 서브쿼리에 데이터가 존재하는지 체크하고 존재할 경우 TRUE를 반환합니다. EXISTS 연산자는 IN 연산자와 비슷한 용도로 사용할 수 있으며, IN 연산자는 비교할 값을 직접 대입할 수 있지만 EXISTS 연산자는 서브쿼리만 사용할 수 있습니다...