CS/SQL

CS/SQL

[SQL] 실행 계획(Execution Plan) 보는 방법

실행 계획이 만들어지면 DBMS는 그것을 바탕으로 데이터 접근을 수행한다. 그러나 여러 이유로 인해 SQL 실행이 지연될 수 있다. 이와 같이 지연이 발생했을 때는 가장 먼저 실행 계획을 살펴보아야 한다. 본 포스팅을 통해 간단하게 실행 계획의 핵심구성과 보는 방법에 대해 알아보자. 1. 실행 계획의 핵심구성 실행 계획에서 핵심적으로 봐야 하는 부분은 크게 다음의 3가지로 나뉜다. 1) 조작 대상 객체 SQL 구문이 실행되는 과정에서 수행되는 조작(Operation)의 대상이 되는 객체를 의미한다 테이블 외에 인덱스, 파티션, 시퀀스처럼 SQL 구문으로 조작할 수 있는 객체라면 무엇이라도 올 수 있다 2) 객체에 대한 조작의 종류 SQL 구문이 실행되는 과정에서 수행되는 조작(Operation)이 어떤 ..

CS/SQL

[MySQL] 하나의 글과 연관된 여러 개의 이미지 추출하는 쿼리 작성하기 (feat. GROUP_CONCAT)

하나의 글에 연관된 여러 개의 이미지 출력하고 싶을 때가 있다. 인스타그램을 떠올려보면 쉽게 이해가 갈 것이다. 우리가 원하는 데이터의 형태는 게시물(post) 하나에 여러 개의 이미지가 묶여서 하나의 행으로 구성되는 것이다(이때, 이미지는 blob형태가 아닌 varchar로 주소의 형태로 저장된다고 가정한다). 말로 하면 살짝 이상한데, 객체 형태로 표현하자면 다음과 같다. { id: 1, content:"글1", paths: [...] } 어떻게 쿼리를 작성할 수 있을까? 다음과 같은 테이블이 있다고 가정하자. posts 테이블 ID CONTENT 1 글1 2 글2 3 글3 images 테이블 ID POST_ID(FK) PATH 1 1 /path1 2 2 /path2 3 2 /path3 4 2 /pa..

CS/SQL

[SQLD] SQLD 합격 후기 및 공부 방법

1. 시험 결과 3월 20일에 치뤘던 제40회 SQL 개발자(SQLD) 시험 결과가 드디어 나왔다. 결과는 다행히도 86점으로 합격을 했고, 과락을 훨씬 웃도는 생각보다 높은 점수를 받아서 놀랐다. 1과목 데이터 모델링의 이해는 객관식으로 10문제, 2과목 SQL 기본 및 활용은 객관식과 단답형으로 40문제가 출제된다. 합격 기준은 1과목+2과목 합쳐서 60점이고, 만약 둘 중 한 과목이라도 40% 미만으로 점수를 취득하게 된다면 불합격이다. 2. 공부 방법 시험 준비 전 나는 데이터베이스 수업을 들은 적이 있고, 구글링과 함께 간단한 쿼리문을 작성할 수 있는 상태였다. 준비 기간은 대략 2주 정도였고, 학교 수업 + 아르바이트로 인해 평일은 약 1~2시간 정도 공부했고, 그나마 여유가 있는 주말에는 3..

CS/SQL

[MySQL] Connection Pool을 사용하는 이유

1. Connection이란? 클라이언트(애플리케이션)측에서 데이터베이스에 접속해서 질의를 수행한 후, 결과를 받고 접속을 종료하는 일련의 과정을 의미한다. mysql.createConnection() -> connection.connect() -> connection.query() -> connection.end() 2. Connection Pool이란? 사용자의 요청에 따라 Connection을 생성하다 보면 많은 수의 연결이 발생했을 때 서버에 과부하가 걸리게 된다. 이러한 상황을 방지하기 위해 미리 일정수의 Connection을 만들어 Pool에 담아뒀다가 사용자의 요청이 발생하면 연결을 해주고 연결 종료 시 Pool에 다시 반환하여 보관하는 것이 바로 Connection Pool이다. 이러한 C..

CS/SQL

[SQLD] Join 연산 정리

1. JOIN이란? 두 개 이상의 테이블들을 연결 또는 결합하여 데이터를 출력하는 것을 의미한다. 일반 적인 경우 행들은 PK나 FK 값의 연관에 의해 JOIN이 성립되지만, 어떤 경우에는 이러한 PK, FK의 관계가 없어도 논리적인 값들의 연관만으로도 JOIN이 성립 가능하다. 2. EQUI JOIN vs Non EQUI JOIN EQUI JOIN(등가 조인)은 두 개의 테이블 간에 칼럼 값들이 서로 정확하게 일치하는 경우에 사용되는 방법으로 대부분 PK ↔ FK의 관계를 기반으로 한다. 하지만, 반드시 PK ↔ FK의 관계로만 EQUI JOIN이 성립하는 것은 아니다. Non EQUI JOIN(비등가 조인)은 두 개의 테이블 간에 칼럼 값들이 서로 정확하게 일치하지 않는 경우에 사용된다. Non EQ..

코택
'CS/SQL' 카테고리의 글 목록