데이터베이스 실행 과정
Client
-> 쿼리
sql 리스너
1) sql 파서
2) sql 전처리
...
...
...
3) sql 실행계획(옵티마이저)
1) ...
2) ...
3) ...
4) ...
옵티마이저가 제대로 실행되지 않는 경우
ex ) 코로나 확진자가 분포되어 있는 상황
코로나 확진자의 지역에 대한 인덱싱 필요
1) 부산
2) 서울
3) 부산
4) ...
5) ...
부산의 데이터를 가져오고 싶을 때 인덱싱이 안되어있으면 전체 데이터를 확인해야 함
데이터가 10개 이하라면?
데이터의 군집화 (클러스터링)
데이터의 군집화가 잘 되어있다면 자료를 찾기가 편하다.
군집화가 안되어있다면 인덱싱된 데이터를 찾는 방법을 사용한다.
-> 데이터 최초 설계의 중요성 (데이터 베이스가 좋은 실행계획을 짤 수 있도록)
데이터 베이스 실행 순서
1) FROM
buffer or memory 에 데이터가 있는지 확인
2) WHERE (FROM 과 함께 움직인다.)
- where 절에 사용하는 이름이 유니크일 경우에는 인덱스처리를 하며 데이터를 찾는다.
- 중복될수 있는 이름을 where로 찾으려 한다면 전체 데이터를 풀스캔 하게 된다.
3) SELECT
4) ORDER BY(마지막에 실행됨)
'정리' 카테고리의 다른 글
추상클래스와 인터페이스의 차이점 (0) | 2020.02.25 |
---|---|
그룹별로 데이터 출력하기(groupby, PARTITION BY) (0) | 2020.02.25 |
(flutter) 테마지정 (0) | 2020.02.20 |
(플러터) 실로폰 (0) | 2020.02.20 |
(flutter) MagicBall 만들기 (0) | 2020.02.19 |