일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- mysql 튜닝
- 정보처리기사 실기 기출문제
- Spring
- minikube
- AI
- Kubernetes
- 티스토리챌린지
- CKA
- kotlin
- Pinpoint
- IntelliJ
- aws
- kotlin coroutine
- MySQL
- kotlin querydsl
- Linux
- CloudWatch
- APM
- kotlin spring
- 코틀린 코루틴의 정석
- 오블완
- 정보처리기사 실기
- 공부
- Elasticsearch
- PETERICA
- AWS EKS
- 정보처리기사실기 기출문제
- CKA 기출문제
- Java
- 기록으로 실력을 쌓자
- Today
- Total
목록Database/MySQL (16)
피터의 개발이야기
ㅁ 개요 MySQL을 사용하면서 InnoDB에 대해서 잘 이해하지 못한 부분이 있어서 공부를 하게 되었다. 백엔드 입장에서 시스템 포퍼먼스를 위해 캐싱기능을 이용하는데, InnoDB도 Memory를 이용한 캐싱처리를 통해 DB 포퍼먼스를 향상 시켰음을 알게 되었다. 이번 글은 InnoDB의 구조를 이해하고 세부적인 처리 방식에 대해서 정리하였다. ㅁ InnoDB의 구조 ㅇ Buffer Pool를 이용한 성능 향상 Buffer Pool은 MySQL의 DB Engine인 InnoDB가 Table Caching 및 Index Data Caching을 위해 이용하는 Memory 공간이다. Buffer Pool 크기가 클수록 상대적으로 Disk에 접근하는 횟수가 줄어들기 때문에 DB의 성능이 향상된다. ㅇ Mem..
ㅁ 개요 이전 글인 SQL 연습을 위한 실습 사이트에 대해서 작성하였다. 이번에는 로컬 Docker에서 MySQL5.7 환경을 구성하고 샘플 데이터를 적재하는 과정을 정리하였다. MySQL 8.0 설치과정은 [MySQL] Mysql Docker 설치, 8.0을 참조하세요. ㅁ MySQL 설치 $ docker run -d -p 3307:3306 \ # 로컬 3307포트를 컨테이너 3306포트로 맴핑 -e MYSQL_ROOT_PASSWORD=strong-password \ # 비밀번호 설정 -v /Volumes/500GB/data/mysql57:/var/lib/mysql \ # 컨테이너의 mysql폴더를 로컬에 마운트하여 데이터가 삭제되는 것을 예방한다. --name mysql_57 mysql:5.7 ㅇ 로..
ㅁ 개요 상황에 따라 GUI가 아닌 터미널에서 SQL 작업을 하게 되는 경우가 있다. 이런 경우 CLI를 통해 직접 SQL를 편집하고 실행하는데, SQL 파일을 통해 편집하여 실행하면 실수나 기존 SQL를 보존하여 더욱 편리하다. 이번 글에서는 맥에 CLI를 설치하고 SQL 파일을 실행하는 과정을 정리하였다. ㅁ Brew를 이용한 mysql과 mysql-client 설치 ㅇ brew 명령어 사용 시 자동완성기능을 이용하면 효율적이다. ㅇ brew install mysql 입력 후 탭 키를 누르면 위의 이미지처럼 install 가능한 목록을 확인 할 수 있다. ㅇ mysql과 mysql-client를 선택한 후 커멘드 실행하면 install이 시작된다. ㅁ 설치 확인 ㅇ 설치 확인을 위해 mysql --v..
ㅁ 개요 ㅇ mysql의 성능향상을 위한 구체적인 지표를 얻을 수 있는 방법을 찾고 있었다. ㅇ profiling을 통해 디비 프로세스의 다양한 성능지표를 확인하여 쿼리 성능을 확인할 수 있다. ㅁ Mysql 버젼확인 ㅇ 참고로 현재 테스트 중인 Mysql은 회사에서 사용 중인 AWS Aurora RDS와 동일한 5.7버젼에 맞추었다. ㅁ SHOW PROFILE 이란? MySQL 에서 쿼리가 처리되는 동안 각 단계별 작업에 시간이 얼마나 걸렸는지 확인 할 수 있는 기능을 제공하며 쿼리 프로파일링(Query Profiling) 기능을 제공하고 있다. 쿼리 프로파일링(Query Profiling)는 MySQL 5.1 이상에서 부터 지원한다. 메모 SHOW PROFILE은 향후 MySQL 릴리스에서 제거될 것..
ㅁ 총 연결 connection 수 확인 show status where `variable_name` = 'Threads_connected'; ㅁ 접속 IP별 connection 수 select ip, count(*) cnt from ( select left(HOST,instr(HOST,':')-1) ip from information_schema.processlist where 1 = 1 # and COMMAND = 'Sleep' -- 대기모드 ) temp group by ip order by 2 desc;
시스템을 운영하면서 데이터가 쌓이게 된다. 다량의 데이터 조회 속도를 높이기 위해 인덱스를 사용하지만, 테이블의 데이터가 많아지면 인덱스 자체의 물리적인 용량이 증가라한다. 인덱스 조차도 허용된 메모리를 넘는 어느 순간 그 테이블 조회 속도는 현저히 느려진다. 큰 테이블은 월별 혹은 일자별로 나누어 관리하는 것이 바람직하다. 내가 쓰고 있는 테이블별 용량 확인 쿼리이다. ############################################################ # 테이블별 용량 SELECT table_name, table_rows, round(data_length / (1024 * 1024 * 1024), 2) as 'DATA_SIZE(GB)', round(index_length / (..