DB
[MySQL] Explain으로 성능 개선 포인트 찾기
[MySQL] Explain으로 성능 개선 포인트 찾기
2024.11.17들어가기 전 이번 포스팅에서는 성능 개선 포인트를 찾기 전에 Explain의 컬럼인 Type에 따른 스캔방식에 대해서 알아보고 성능 개선하는 방법에 대해서 알아보겠습니다.아래에서 설명할 내용들은 대부분 인덱스를 활용하는 내용입니다. 인덱스가 적용 안 되는 케이스에 대해서 궁금하신 분들은 아래 포스팅을 참고하시는 것을 추천드립니다.https://hoestory.tistory.com/80 [MySQL] 인덱스 적용안되고 풀스캔이 적용되는 패턴들어가기 전이번 포스팅에서는 인덱스를 설정을 하고 인덱스 스캔방식을 원했지만 풀스캔이 쿼리 패턴에 대해서 알아보겠습니다.Mysql에서 지원해 주는 Explain이라는 키워드를 사용하여 스캔방hoestory.tistory.com Explain에 대해서 알아보기 전 포스..
[MySQL] 데드락 및 데이터베이스 Lock(Shared Lock, Exclusive Lock, Record Lock)에 대하여 -1
[MySQL] 데드락 및 데이터베이스 Lock(Shared Lock, Exclusive Lock, Record Lock)에 대하여 -1
2024.10.20들어가기 전 이번 포스팅에서는 데드락과 데이터베이스 Lock에 대해서 알아보겠습니다.트랜잭션 격리 수준에 대한 내용은 아래 포스팅을 참고하시면 됩니다. https://hoestory.tistory.com/86 [MySQL] 트랜잭션 격리 수준들어가기 전 이번 포스팅에서는 데이터베이스 트랜잭션의 격리 수준에 대해서 알아보겠습니다. 트랜잭션 격리 수준트랜잭션 격리 수준은 여러 트랜잭션이 동시에 실행되는 상황에서 특정 트hoestory.tistory.com 데드락이란?데드락은 교착상태를 의미하고 두 개 이상의 작업이 서로 상대방의 작업이 끝나기 만을 무한정 기다리고 있기 때문에 결과적으로 아무것도 완료되지 못하는 상태를 의미합니다. 위의 이미지를 보면 R1(자원 1)은 P1(프로세스 1)을 점유하고 있는 상태..
[MySQL] 트랜잭션 격리 수준
[MySQL] 트랜잭션 격리 수준
2024.10.06들어가기 전 이번 포스팅에서는 데이터베이스 트랜잭션의 격리 수준에 대해서 알아보겠습니다. 트랜잭션 격리 수준트랜잭션 격리 수준은 여러 트랜잭션이 동시에 실행되는 상황에서 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있게 허용할지 말지 정하는 것입니다. 트랜잭션 격리 수준의 종류는 아래와 같습니다.READ_COMMITTED : 다른 트랜잭션에서 커밋된 내용을 참조 가능READ_UNCOMMITTED : 다른 트랜잭션에서 커밋되지 않은 내용 참조 가능REPEATABLE_READ : 트랜잭션 진입 이전에 커밋된 내용만 참조 가능SERIALIZABLE : 트랜잭션에 진입하게 되면 락을 걸어 다른 트랜잭션에서 참조 불가능Oracle의 기본 격리 수준은 READ_COMMITTED, MySQ..
[MySQL] 인덱스 적용안되고 풀스캔이 적용되는 패턴
[MySQL] 인덱스 적용안되고 풀스캔이 적용되는 패턴
2024.06.30들어가기 전이번 포스팅에서는 인덱스를 설정을 하고 인덱스 스캔방식을 원했지만 풀스캔이 쿼리 패턴에 대해서 알아보겠습니다.Mysql에서 지원해 주는 Explain이라는 키워드를 사용하여 스캔방식을 파악할 것입니다. 테이블 구조 및 데이터 삽입 테이블 생성 create table member( id bigInt primary key auto_increment, name varchar(255) not null, age int not null, login_count bigint default 0, created_at datetime not null default now()); 인덱스 생성 CREATE INDEX idx_login_count ON member(login_count); 더미..
[MySQL] Explain 사용법 및 분석
[MySQL] Explain 사용법 및 분석
2023.06.16들어가기 전해당 포스팅에서는 Explain이 무엇이며 사용하는 방법, 사용했을 때 나오는 결과를 분석하여 설명드리겠습니다.필자는 MySQL 버전 8.0 기준으로 설명하겠습니다. Explain이란?DB 서버가 어떠한 쿼리를 실행할 것인지 실행계획을 알고 싶을 때 사용하는 명령어입니다.Explain을 사용하면 실행시킬 쿼리의 실행계획을 알 수 있어 성능 분석을 하여 쿼리 튜닝을 할 수 있습니다. 사용방법EXPLAIN [ANALYZE] SELECT (컬럼..) FROM 테이블실행계획을 세울 쿼리 앞에 EXPLAIN 키워드를 사용합니다.ANALYZE 옵션은 쿼리 처리에 사용되는 각 반복자에 대해 TREE 형식의 SELECT 문 실행에 대한 확장 정보를 제공하고 예상 비용을 쿼리의 실제 비용과 비교 가능합니다.●..
[MySQL]SELECT문 개념 및 예제
[MySQL]SELECT문 개념 및 예제
2021.11.19SELECT 란명령어 종류에는 DDL, DCL, DML 등이 있다. SELECT문은 DML에 속합니다.튜플(행)을 조회합니다. SELECT 기본 문법SELECT [DISTINCT] 속성명 FROM 테이블명 WHERE 조건식GROUP BY 그룹화할 속성명HAVING 조건식ORDER BY 정렬할속성명 [ASC|DESC]DISTINCT : 중복된 속성을 한 번만 조회WHERE : 조건 ex) age가 15살 이하 검색 => where age >=15GROUP BY : 그룹화할 속성명HAVING : GROUP BY와 같이 쓰이는 조건식ORDER BY : 데이터 정렬, ASC는 오름차순, DESC는 내림차순, DEFAULT는 ASC Person 테이블IDNAMEAGE1hoestory242jeong53kim304l..