일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Kubernetes
- kotlin
- Spring
- AI
- kotlin coroutine
- Pinpoint
- 기록으로 실력을 쌓자
- IntelliJ
- APM
- Java
- minikube
- CKA
- MySQL
- Linux
- mysql 튜닝
- 티스토리챌린지
- Elasticsearch
- PETERICA
- 정보처리기사 실기 기출문제
- CKA 기출문제
- CloudWatch
- aws
- 코틀린 코루틴의 정석
- 정보처리기사실기 기출문제
- kotlin querydsl
- 오블완
- 공부
- AWS EKS
- 정보처리기사 실기
- kotlin spring
- Today
- Total
목록전체 글 (798)
피터의 개발이야기
ㅁ 개요ㅇ 파티션 작업 시 필요한 쿼리를 정리하였습니다. ㅁ 파티션 테이블 리스트 조회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..
ㅁ 개요 Docker 호스트 시스템에서 리소스 사용을 제한해야 하는 경우가 많습니다. 이번 글에서는 Docker 컨테이너의 메모리 및 CPU 제한을 설정하는 방법을 정리하였습니다. ㅁ 메모리 제한하기 $ docker run -m 512m nginx ㅇ 컨테이너가 사용할 수 있는 메모리를 512MB로 제한합니다. $ docker run -m 512m --memory-reservation=256m nginx ㅇ 예약이라는 소프트 제한을 설정할 수도 있습니다. ㅇ docker가 호스트 시스템의 메모리가 부족한 경우를 대비하여 예약 활성화를 할 수 있습니다. ㅁ CPU 제한하기 ㅇ 기본적으로 호스트 시스템의 컴퓨팅 성능에 대한 액세스는 무제한입니다. ㅇ CPUs 매개변수를 사용하여 CPU 제한을 설정할 수 있습..
ㅁ 들어가며 Redis의 비밀번호를 설정하는 방법을 정리하기 위해 docker redis를 설치하여, 생성된 Container 안에 접속하여 비밀번호 설정하는 과정을 정리하였습니다. ㅁ Redis 설치 [Redis] Docker Redis 설치하기에 따라 설치하였습니다. # redis docker 설치 $ docker run --name myredis -d -p 6379:6379 redis c9f0cdfa7cff92fe205e82a15dda0f42505d6fef25bf827b26c8d0ea77ad1b90 # redis 설치 확인 $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c9f0cdfa7cff redis "docker-entryp..
ㅁ 들어가며 [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를 살펴보고 각각의..
[kubernetes] 개발환경 목차 1. 기본 Pod 조회 사용 가능한 모든 포드를 조회하는 명령어로 기본 Default Namespace를 조회합니다. $ kubectl get pod ✔ 6785 07:35:22 NAME READY STATUS RESTARTS AGE redis 0/1 CrashLoopBackOff 76 (3m39s ago) 6h10m 2. kube-system Pod 조회 -n kube-system 옵션을 사용하여 kube-system namespace의 모든 Pod의 정보를 확인합니다. $ kubectl get pod -n kube-system NAME READY STATUS RESTARTS AGE coredns-5d78c9869d-f2fwk 1/1 Running 0 6..
ㅇ iTerm > Preferences > Profiles > 사용자 선택을 합니다. ㅇ Terminal 탭에서 Scrollback Buffer를 조정합니다.
[kubernetes] 쿠버네티스 목차 [kubernetes] 모니터링 방법 정리 ㅁ 모든 POD의 CPU-Requet CPU-limit MEM-Request MEM-limit 조회 $ kubectl get po -A # 모든 NameSpace의 Pod들 -o custom-columns= "Name:metadata.name, CPU-Requet:spec.containers[*].resources.requests.cpu, CPU-limit:spec.containers[*].resources.limits.cpu, MEM-Request:spec.containers[*].resources.requests.memory, MEM-limit:spec.containers[*].resources.limits.memory..
ㅁ 들어가며 백엔드개발을 하면서 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 연산자는 서브쿼리만 사용할 수 있습니다...
ㅁ 개요 지난 글에서 [RabbitMQ] Prometheus 및 Grafana로 RabbitMQ 모니터링 구축을 하였습니다. 이번 글에서는 모니터링을 위해서 Grafana 데시보드인 RabbitMQ-Overview의 지표이 무엇이 있는 지 정리하였습니다. ㅁ RabbitMQ-Overview ㅇ RabbitMQ-Overview에서는 RabbitMQ의 건강성 지표, RabbitMQ 노드 및 메시지 속도, Connection 등을 확인할 수 있습니다. * Healthy 대시보드 ㅇ 대시보드 상단에는 RabbitMQ 클러스터의 다양한 색상을 사용하여 상태를 표시합니다. - 녹색은 메트릭 값이 정상 범위에 있음을 의미합니다. - 파란색은 활용도가 낮거나 어떤 형태로든 저하된 상태를 의미합니다. - 빨간색은 메트릭..