21년 4월 26일
한 일
-
DB
-
인덱스
-
칼럼을 쉽게 찾기 위해 만드는 색인
-
인덱스를 만드는 것을 인덱싱이라고 한다.
-
기본적으로 자료구조는 B+ Tree를 사용하나, 해쉬 색인과 같이 다른 자료구조도 사용될 수 있다.
-
count(*) 쿼리의 경우 인덱스의 사이즈를 확인하여 빠르게 개수확인이 가능하다.
-
여러 칼럼에 대해 만드는 인덱스를 복합 인덱스라고 한다.
-
a와 b에 복합 인덱스를 만들면 where 절에 a와 b를 조건으로 찾을때 인덱스를 탈 수 있다.
-
a와 b에 각각 인덱스를 만들면, selectivity가 낮은쪽(카디널리티가 높은쪽)의 인덱스로
필터링한 후에 (쿼리 최적화) 남은 조건으로 스캔한다.
-
-
-
통계정보
- 쿼리최적화를 위하여 테이블에 대한 통계정보를 저장하고 있는 것
- insert할 때 갱신할 수도, 일정 주기로 갱신할 수도 있지만 둘다 위험할 수 있음
- 통계 정보를 적절하게 갱신하는 옵션이 있다.(궁금하면 나중에 찾아볼 것)
-
-
반찬가게 사이트 만들기(Spring boot, Spring data jdbc)
- GET 으로 필요한 데이터들을 가져올 수 있게 API 구현하였다.
- Spring Data JDBC에서 M:N을 구현하기 위한 방법 을 시청하고 반영하였다.
- Spring Data JDBC를 사용하면 프로젝트가 복잡해질수록 생길 수 있는 순환 참조, 데이터 간의 정합성 문제 등을 JPA보다 쉽게 해결할 수 있다고 한다.(aggregate root 만을 통해 접근하도록 설계되었기 때문)
느낌
- 후 너무 오랜만에 쓰는 TIL이다. 기록을 안하니 남는게 없는것 같아서 불안하군 ㅠㅠ
- JPA를 사용할 때보다 spring data jdbc를 사용하니 훨씬 불편하고 복잡하다.
- 지금 프로젝트가 너무 작아서 spring data jdbc가 불편하게 느껴지는 것 같기도 하다.(이점을 못느끼나?)
할 일
- 코드스쿼드 미션하기
- 프로그래머스 문제 풀기