[MySQL] Audit Log, Slow Query, Error Log 정리
·
Database | SQL | OS/MySQL | Maria
오늘은 MySQL 에서 장애 상황을 파악하기에 매우 중요한 Audit Log, Slow Query Log, Error Log를 정리해보려 합니다. 장애 상황이 생겼을 때나, 성능에 문제가 발생했을 때, Long Running Query가 발생했을 때 꼭 살펴봐야 합니다. 아래는 MySQL 의 공식 매뉴얼 문서입니다. 참고하면 좋을듯 하여 첨부합니다. MySQL :: MySQL 8.4 Reference Manual :: 7.4.2 The Error LogThis section discusses how to configure the MySQL server for logging of diagnostic messages to the error log. For information about selecting..
[SQL] Index를 활용한 SQL 튜닝과 Index 사용 불가능 조건
·
Database | SQL | OS/SQL Tuning
안녕하세요. 오늘은 Index를 활용한 SQL 튜닝과 Index가 사용 불가능한 조건에 대해서 공부하고 기록해보려 합니다. 아래는 예전에 Oracle Database를 기준으로 작성한 Index에 관한 설명과 MySQL 에서의 쿼리 Plan 확인 방법에 대한 게시글입니다. 참고하면 좋을듯하여 첨부합니다. 오라클 DBMS 기본 - 인덱스오늘은 오라클에서 쿼리 튜닝과 성능 분석에 꼭 필요한 개념인 인덱스, 성능을 개선시키지만 때로는 저하시키기도 하는 인덱스에 대해서 공부해보려고 합니다. DBMS의 테이블에서 데이터를 찾는hyungyun.tistory.com [SQL] MySQL 쿼리 Plan 확인 방법오늘은 Database 의 성능 관리와 튜닝에서 중요한 부분을 차지하는 Query Plan 에 대해서 공부..
[SQL] SQL 처리 과정 (SQL 파싱, SQL 최적화 옵티마이저, 로우 소스 생성)
·
Database | SQL | OS/SQL Tuning
오늘은 SQL 튜닝에서 SQL 처리 과정과 I/O 에 대해서 공부해보고 기록해보려 합니다.SQLP를 준비하는 과정에서 친절한 SQL 튜닝 서적과 개인적으로 찾아보고 공부한 자료들을 바탕으로 공부하였으니 이점 참고 부탁드리겠습니다. Database는 Oracle을 기준으로 작성하였습니다. SQL 처리 과정 이란?사용자가 만약 아래와 같은 쿼리를 수행하면 DB 내부에서는 크게 4단계의 과정을 거치며 데이터를 가져옵니다. (친절한 SQL 튜닝 책에서는 3단계의 과정을 거칩니다. 마지막 실행 엔진으로의 데이터 추출은 참고 부탁드립니다.)SELECT * FROM users WHERE id = 1; SQL 파싱 SQL 최적화 (옵티마이저)로우 소스 생성실행 엔진으로 데이터 추출위의 4가지 순서를 거치며 SQL ..
[SQL] 효율적인 조회를 위한 Join 개념 (Inner Join, Outer Join, Cross Join, Self Join)
·
Database | SQL | OS/SQL Tuning
안녕하세요. 오늘은 SQL 조회 성능에 영향을 주는 Join에 대해서 공부해보도록 하겠습니다. Index를 추가적으로 공부하고 생성해보려고 했으나, 예전 Index 관련해서 포스팅한 글이 있어서 내용이 겹칠 것 같아 링크만 첨부하고 Join에 대해서 공부해볼까 합니다. 오라클 DBMS 기본 - 인덱스오늘은 오라클에서 쿼리 튜닝과 성능 분석에 꼭 필요한 개념인 인덱스, 성능을 개선시키지만 때로는 저하시키기도 하는 인덱스에 대해서 공부해보려고 합니다. DBMS의 테이블에서 데이터를 찾는hyungyun.tistory.com 1. Join 이란? - 관계형 데이터 베이스 (RDBMS) 에서는 데이터의 중복을 막고 일관성을 유지하기 위해서 데이터를 여러 공간 (테이블)에 잘개 나누어 저장하는데, 이때 Joi..
2026년 SQLD,SQLP 자격시험 일정 및 합격률
·
Database | SQL | OS/SQLD & SQLP
안녕하세요. 올해는 숙원사업인 SQLP 취득을 목표로 공부 해볼 예정이라, SQLD와 SQLP 자격시험 일정과 합격률을 공유해볼까 합니다. SQLD 자격증은 SQL 개발자 자격증으로 난이도가 상대적으로는 낮고, 소위 말하는 SQL 노랑이책만 공부하면 쉽게 취득할 수 있습니다. SQLP 자격증은 SQL 전문가 자격증으로 굉장히 난이도가 높은 자격증입니다.평균 합격률이 10%가 안되는 자격증으로 현업에 종사하시는 분들은 3개월에서 길게는 1년까지 공부하는 자격증으로 알고 있습니다. SQLP 시험은 1년에 2회, SQLD 시험은 1년에 4회 응시할 수 있습니다. SQLP 시험 일정제54회 : 2/2 ~ 2/6 (접수 기간) | 3/7 (시험일자) 제55회 : 7/20 ~ 7/24 (접수 기간) | 8/22 ..
SQL 프로그래머스 코딩테스트 공부 - 8
·
Database | SQL | OS/SQL 개발공부
조건에 맞는 사용자와 총 거래금액 조회하기 고려한 점2개의 테이블에서 동일한 컬럼명을 가진 컬럼이 없지만, 내용이 같은 컬럼 확인GROUP BY 로 그룹화 된 컬럼에서 HAVING 으로 조건을 부여하여 TOTAL_PRICE 구함제출한 쿼리-- 코드를 입력하세요SELECT A.USER_ID, A.NICKNAME,SUM(PRICE) AS TOTAL_PRICEFROM USED_GOODS_USER AINNER JOIN USED_GOODS_BOARD BON A.USER_ID = B.WRITER_IDWHERE B.STATUS = 'DONE'GROUP BY A.USER_IDHAVING TOTAL_PRICE >= 700000ORDER BY TOTAL_PRICE ASC 저자 별 카테고리 별 매출액 집계하기 고려할 ..
SQL 프로그래머스 코딩테스트 대비 공부 - 7
·
Database | SQL | OS/SQL 개발공부
언어별 개발자 분류하기 고려한 점CASE ~WHEN 조건으로 각각의 비교값에 대한 결과 출력비트연산자를 활용하여 원하는 조건값을 비교HAVING 절을 활용하여 ALIAS 지정된, 조건이 맞는 집계된 데이터에서 조건을 적용함 아쉬운 점CASE ~ WHEN 함수에 대한 미숙함WHERE 의 경우에는 ALIAS 사용 및 집계 된 데이터에 한해서 적용이 불가능하지만, 최초에 WHERE 로 쿼리 작성 이후 다른분의 블로그 참고하여 HAVING 으로 변경성능상으로 비효율적이라 판단하여 다른 블로그 및 GPT 활용 제출한 정답-- 코드를 작성해주세요SELECT (CASE WHEN (SKILL_CODE & (SELECT SUM(CODE) FROM SKILLCODES WHERE CATEGORY LIKE 'Front%')..
SQL 프로그래머스 코딩테스트 대비 공부 - 6
·
Database | SQL | OS/SQL 개발공부
특정 조건을 만족하는 물고기 별 수와 최대 길이 구하기 고려할 점FISH_TYPE 별 평균 길이를 구하고, 33cm 이상인 것들만 COUNTNULL 값의 경우 (10cm) 이하의 경우는 10으로 치환해서 계산기억할 점HAVING 절 이후 집계 함수 사용 기억 -- 코드를 작성해주세요SELECT COUNT(*) AS FISH_COUNT, MAX(IFNULL(LENGTH,10)) MAX_LENGTH, FISH_TYPEFROM FISH_INFOGROUP BY FISH_TYPEHAVING AVG(IFNULL(LENGTH,10)) >= 33ORDER BY FISH_TYPE ASC 물고기 종류 별 대어 찾기 고려할 점 물고기 종류 별 가장 큰 물고기를 구하기 위해 서브쿼리로 MAX 값에 대한 LENGTH 비제출..
SQL 프로그래머스 코딩테스트 대비 공부 - 5
·
Database | SQL | OS/SQL 개발공부
대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 고려할 점총 대여 횟수가 5인 자동차에 대하여 월별로 확인해야 하므로 총 대여횟수가 5인 CAR_ID 를 조회2번의 GROUP BY 를 사용하여 CAR_ID 의 전체 집계가 5 이상인것, 그 뒤로 월별로 출력할 것 고려 간과한 점 GROUP BY 에 MONTH 와 CAR_ID 2가지로 그룹화하여 정답을 출력하여야 했으나 그렇지 못함HAVING 절에서 아직 미흡한 모습SELECT MONTH(START_DATE) AS MONTH ,CAR_ID,COUNT(*) AS RECORDSFROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE CAR_ID IN (SELECT CAR_ID FROM CAR_RENTAL_C..
SQL 프로그래머스 코딩테스트 대비 공부 - 4
·
Database | SQL | OS/SQL 개발공부
그룹별 조건에 맞는 식당 목록 출력하기 고려할점 MEMBER_PROFILE 과 REST_REVIEW 사이에 공통 컬럼인 MEMBER_ID 컬럼으로 INNER JOIN 리뷰를 가장 많이 작성한 회원의 리뷰를 출력해야하므로, 서브쿼리를 사용하여 제일 많이 작성한 MEMBER_ID 를 MEMBER_PROFILE 의 MEMBER_ID 와 비교해야함 아쉬운점문제를 조금 더 꼼꼼히 읽어봐야함. 정답 작성시에 테이블 잘못 입력ORDER BY 문을 수행할 시에 SELECT 하지 않은 컬럼도 가능하지만, ORDER BY 에 사용할 컬럼을 SELECT 로 자꾸 수행하려고 함 제출한 정답 -- 코드를 입력하세요SELECT a.MEMBER_NAME, b.REVIEW_TEXT,DATE_FORMAT(b.REVIEW_DATE,'..