[내일배움캠프] TIL_230116

JungHoon Han·2023년 1월 16일
0

내일배움캠프

목록 보기
55/78

SQL Query(2)

SQL Query(1) 블로그

다섯번째 문제

SELECT
    b.AUTHOR_ID,
    c.AUTHOR_NAME,
    b.CATEGORY,
    SUM(a.SALES * b.PRICE) AS SALES
FROM
    BOOK_SALES a
INNER JOIN BOOK b ON
    a.BOOK_ID = b.BOOK_ID
INNER JOIN AUTHOR c ON
    b.AUTHOR_ID = c.AUTHOR_ID
WHERE
    a.SALES_DATE a.SALES_DATE < '2022-02-01'
GROUP BY
    b.AUTHOR_ID,
    b.CATEGORY
ORDER BY
    b.AUTHOR_ID,
    b.CATEGORY DESC

정답 코드에서 틀린점이 있다면, WHERE 부분에서 2022-02-01 이전의 모든 데이터를 가져오게 작성되어있다. 2022년1월의 데이터만 가져오려면 BETWEEN을 사용해서 작성해야한다.

  • 그리고 개인적인 사정이 있어 오늘까지 크게 집중을 하지 못했다.
    그래서 선발대수업의 숙제를 여기다가 작성하려고한다.

이중화

이중화는 마스터 인스턴스가 죽은 경우에 스탠바이 인스턴스가 곧바로 마스터 인스턴스로 교체되어서 다운타임을 최소화하는 메커니즘을 말합니다.
.
이 이중화라는 개념은 데이터베이스 자체에서 지원하는 개념은 아닙니다. 단지, AWS RDS와 같은 클라우드 서비스는 안정성 확보라는 미션을 갖고 있는 개발자들에게 “이중화”라는 솔루션을 자체적으로 제공함으로서 개발자들의 고민거리를 덜어주는 것이죠.
기본적으로 AWS RDS는 보통 여러 개의 인스턴스가 있으며 1개의 마스터 인스턴스와 N개의 스탠바이 인스턴스로 구성이 됩니다. 아래의 그림을 보시죠.

Q. 여러분들이 데이터베이스 엔진을 만드는 프로그래머라고 가정을 합시다.
이 데이터베이스 엔진에는 이중화가 자체적으로 지원이 필수적이며 여러분의 상사가 이중화 기능을 구현해달라고 합니다. 어떤 논리로 이중화 기능을 구현해볼지 생각하고 여러분들의 아이디어를 공유해주세요!

  • 우선 안정성을 확보하기위해 여러개의 백업파일을 만든다.
  • 백업파일중 일부를 Read Only파일로 데이터를 보내는 역할만 하게 활용(Primary 과부하 방지).
  • 나머리 백업파일을 혹시모를 Primary DB가 다운되거나 작동하지 않을때 Primary DB를 대신할 수 있는 역할을 가진 DB로 활용.
profile
Node.js 주니어 개발자

0개의 댓글