썩어버린 Query Language

created : 2020-04-07T11:18:38+00:00
modified : 2020-04-08T03:44:29+00:00

# 1. SQL (Structured Query Language)?

데이터베이스의 역사

Query Optimizer

https://www.researchgate.net/profile/Martin_Boissier/publication/332803446/figure/fig2/AS:754092716593152@1556801122020/The-different-steps-of-the-SQL-Pipeline-leading-from-an-SQL-string-to-executable.png

2. 썩어버린 query language

썩었다?

우리도 한번 고이는 것 정도는 해보자

3. Index

Index란?

https://www.lucidchart.com/publicSegments/view/08895b1f-2111-4790-a99e-e5d9b101f7a3/image.png

이런 쿼리는 가급적 쓰지 말자

쿼리 최적화의 좋은 예시

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/9371e4ab-2f42-4c84-b00c-d55cb91399c4/Untitled.png

Pagination 이야기 (Row lookup)

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/07984ce2-565f-42a0-ac02-77bda9c5ab00/Untitled.png

SELECT id, xValue, yValue, zValue, createdAt
FROM Position
LIMIT 2000000, 1000

SELECT id, xValue, yValue, zValue, createdAt
FROM (
    SELECT id
    FROM Position
    LIMIT 2000000, 1000
) q
JOIN Position p
ON p.id = q.id

4. SQL이 항상 DB에서 무언가를 조회할 최선은 아니다. (NoSQL - Not only SQL)

5. 잡설

막간을 이용한 책팔이

오늘 발표 내용의 대부분은 아래 책의 12개의 챕터 중 1/2 챕터 분량밖에 안된다. 강추

데이터 중심 애플리케이션 설계

References

NAVER D2

[DB개념] :: Index Structures (인덱스 구조)

파티셔닝(Partitioning)

Pagination을 위한 최적화 SQL (LIMIT vs JOIN)

NoSQL