본문 바로가기
독서/개발

[서평/23-16] SQL 레벨업 : DB 성능 최적화를 위한 SQL 실전 가이드

by 독서왕뼝아리 2023. 4. 8.

독서기간_2023년 1월 10일 ~ 2023년 1월 20일

저자_미크

출간일_2016년 1월 30일


 

😦... 내가 이걸 아직도 안 썼다니...

 

 

데이터베이스, 특히 SQL은 간과하기 쉽다. 작은 예제 테이블에서 SELECT, FROM, WHERE 문을 잘 조합하면 원하는 데이터를 조회할 수 있다. 다른 테이블과 관계된 데이터의 조회도 필요한가? 그럼 JOIN을 사용하면 된다.

그런데 테이블 결합 시 발생하는 결과를 생각해본 적 있는가? 카티션 프로덕트가 초래하는 성능 이슈를 아는가? SQL 실행계획을 아는가? 조건 분기, 윈도우 함수를 아는가? 그렇지 않다면 이 책을 읽어보길 바란다. 1000개도 안 되는 데이터베이스 테이블에서 조회만 잘 한다고 SQL을 잘 쓰는 것이 아니다. 

 

신입 개발자 준비하면서 얼마나 큰 데이터를 다뤄봤겠냐 아무리 로직을 깔끔하게 짠들 서버의 성능은 쿼리문 하나로 결정된다. 수억 개의 튜플이 존재하는 테이블 두 개를 조인해서 조건이 일치하는 단 하나의 튜플을 조회할 때 비용은 만만치 않을 것이다. 데이터베이스 엔지니어인 저자는 쉽게 지나칠 수 있는 쿼리의 비용을 강조한다. 또 쿼리는 절차적인 코드가 아니다. 개발자라하면 반복문을 통해 결과를 얻는 것에 익숙해져있다. 이 책에서 반복없이 쿼리를 작성할 수 있도록 도와준다. 

 


 

SQL이 성능을 좌우한다는 것도, 결합없이도 서브쿼리없이도 데이터를 조회할 수 있다는 것을 알았다. SQL 연습이라고는 프로그래머스 사이트에서 성능 관계없이 쿼리 작성하는 예제가 거의 전부였다. 무지성 결합의 위험성과 GROUPing의 유용성을 알게 되었다. 또 그룹핑 위에 윈도우 함수가 존재한다는 것을... SELECT, FROM 문만을 사용해 획기적인 쿼리를 작성할 수 있다. 

또 다시 모르는 게 많다는 것을 알게 해준 책이다^^ 어떤 분야에서든 전문가는 다르구나. 나도 책 쓸 수 있을 때까지 파이팅하겠다.