일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 정보처리기사 실기 기출문제
- Pinpoint
- IntelliJ
- kubectl 설치
- CKA 기출문제
- CKA
- Redis 모니터링
- aws
- 쿠버네티스
- minikube dashboard
- 공부
- Kubernetes 자격증
- 정보처리기사 실기
- Kubernetes
- AWS EKS
- k9s
- Java
- minikube
- skaffold
- APM
- CloudWatch
- Spring
- MySQL
- mysql 튜닝
- 기록으로 실력을 쌓자
- kubernetes tool
- PETERICA
- 정보처리기사실기 기출문제
- AWS EBS
- Linux
- Today
- Total
목록Database (31)
피터의 개발이야기
ㅁ 개요 SQL 공부를 하면서 공부환경을 위해 MySQL를 설치하고 데이터도 세팅하기에는 버거운 점이 있다. 그래서 SQL 공부를 도와줄 수 있는 사이트를 알아보았다. 우선 DB없이 SQL을 연습할 수 있는 튜트리얼 사이트 w3schools, sql fiddle를 알아보고, SQL 문제를 풀어볼 수 있는 사이트에 대해서 정리하였다. Tutorial ㅁ w3schools ㅇ SQL의 기본적인 문법을 공부할 수 있는 사이트이다. ㅇ SQL Tutorial의 카테고리를 통해 SQL의 다양한 문법을 연습할 수 있다. ㅇ URL: https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_all ㅇ 위 링크에서 유통업체 관련 8개의 테이블과 샘플 데이터를 제..
ㅁ 개요 하루의 경험을 기록해야겠다는 모티브가 되어준 이동욱님의 QUERYDSL의 노하우가 담긴 영상이 있어서 정리를 하였다. 객체 지향적 JPA를 통해 SQL문 작성에서 자유로워 질 수는 있지만, 실질적 데이터베이스 성능을 위해서는 real SQL도 고려해야한다. 이 영상에서 JPA의 장점과 단점을 고려하여 DB 성능을 어떻게 구현할 수 있을 지에 대한 노하우를 얻을 수 있었다. ㅁ 목차 ㅁ extends / implements 사용하지 않기 ㅁ 동적 쿼리 BooleanExpression ㅁ exist 메소드 금지 ㅁ Cross Join 회피 ㅁ Entity 보다는 Dto 를 우선 ㅁ Group By 최적화 ㅁ 커버링 인덱스 ㅁ 커버링 인덱스 조회는 나눠서 진행 ㅁ 마무리
DBeaver에서 쿼리작업 시 다량의 쿼리를 실행 해야 하는 경우가 있다. 다량의 쿼리를 순차적으로 실행시켜주는 단축키가 있다. 일별 파티션 작업 시 다중 SQL수행으로 도움을 받았다. 1. 실행할 쿼리들을 드래그한다. 2. Alt + x 를 클릭하면 쿼리들 순차적으로 실행한다. 3. Statistics를 보면 실행된 쿼리 수와 수행시간, 끝난 시간을 확인 할 수 있다. 4. 수행 결과는 Result탭에서 확인 할 수 있다. ㅁ 함께 보면 좋은 사이트 ㅇ [DBeaver] 필수 단축키 [DBeaver] 필수 단축키 ㅁ DBeaver 필수 단축키 ㅇ Ctrl + Enter : 현재 SQL문 실행 ㅇ Crt + Shift + F : 선택된 SQL문 자동정리 ㅇ Alt + ↑/↓ : 이전 / 다음 쿼리로 이동..
ㅁ 개요 상황에 따라 GUI가 아닌 터미널에서 SQL 작업을 하게 되는 경우가 있다. 이런 경우 CLI를 통해 직접 SQL를 편집하고 실행하는데, SQL 파일을 통해 편집하여 실행하면 실수나 기존 SQL를 보존하여 더욱 편리하다. 이번 글에서는 맥에 CLI를 설치하고 SQL 파일을 실행하는 과정을 정리하였다. ㅁ Brew를 이용한 mysql과 mysql-client 설치 ㅇ brew 명령어 사용 시 자동완성기능을 이용하면 효율적이다. ㅇ brew install mysql 입력 후 탭 키를 누르면 위의 이미지처럼 install 가능한 목록을 확인 할 수 있다. ㅇ mysql과 mysql-client를 선택한 후 커멘드 실행하면 install이 시작된다. ㅁ 설치 확인 ㅇ 설치 확인을 위해 mysql --v..
ㅁ 개요 ㅇ 시스템 점검 시 SQLException이 발견되었다. 원인은 텍스트 중에 포함되어 있던 이모지를 디비에 Insert할 때에 Incorrect string value 에러가 발생하였고, 이를 조치하는 과정을 정리하였다. ㅁ 에러 확인 uncategorized SQLException; SQL state [HY000]; error code [1366]; (conn=322423) Incorrect string value: '\xF0\x9F\x8E\x81\xEB\xA8...' for column 'FORMATTEDSTRING' at row 1; nested exception is java.sql.SQLException: (conn=322423) Incorrect string value: '\xF0\x..
ㅁ 개요 ㅇ mysql의 성능향상을 위한 구체적인 지표를 얻을 수 있는 방법을 찾고 있었다. ㅇ profiling을 통해 디비 프로세스의 다양한 성능지표를 확인하여 쿼리 성능을 확인할 수 있다. ㅁ Mysql 버젼확인 ㅇ 참고로 현재 테스트 중인 Mysql은 회사에서 사용 중인 AWS Aurora RDS와 동일한 5.7버젼에 맞추었다. ㅁ SHOW PROFILE 이란? MySQL 에서 쿼리가 처리되는 동안 각 단계별 작업에 시간이 얼마나 걸렸는지 확인 할 수 있는 기능을 제공하며 쿼리 프로파일링(Query Profiling) 기능을 제공하고 있다. 쿼리 프로파일링(Query Profiling)는 MySQL 5.1 이상에서 부터 지원한다. 메모 SHOW PROFILE은 향후 MySQL 릴리스에서 제거될 것..
Mariadb 설치 후 시간 설정을 진행하였습니다. 기본적으로 디비가 실행되는 시스템 타임존에 맞춰 있어서 한국시간 대로 바꾸는 작업을 진행하였습니다. 현재 타임존 확인 방법 SELECT @@global.time_zone, @@session.time_zone; SYSTEM인 경우 Mariadb가 실행되는 서버의 타임존을 따라 간다. 서버 타임존 확인 현재 서버의 시간대는 UTC로 되어 있어 디비의 시간이 한국시간대와 맞지 않았습니다. 간단한 타임존 변경 SET GLOBAL time_zone='Asia/Seoul'; SET time_zone = 'Asia/Seoul'; SELECT @@global.time_zone, @@session.time_zone; SQL상으로 time_zone을 변경할 수 있습니다...
mariadb에 한글이 깨지는 문제를 방지하기 위해 docker의 MaraiDB Character Set을 UTF-8로 변경하도록 하겠습니다. mariadb 접속 docker container ls docker exec -i -t mariadb_mac bash my.cnf 수정 #apt update apt-get update #install vim apt-get install vim 우선 수정을 하기 위해 vim을 설치해야 합니다. 설치 완료 후 my.cnf를 수정합니다. vi /etc/mysql/my.cnf my.cnf 파일에 아래의 내용을 추가합니다. character-set-client-handshake = FALSE init_connect="SET collation_connection = utf8..
ㅁ 총 연결 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 / (..