[TIL] 9월 28일

yeon·2021년 9월 28일
0

오늘 학습한 내용

Querydsl 강의
fetchResults() 는 페이징 정보까지 가져온다. count 쿼리가 함께 나간다.

SQL

  • explain 으로 SQL 문의 실행 계획을 알 수 있다. 인덱스를 사용해서 검색하는지 확인 가능

  • 카디널리티
    - 인덱스를 걸지 걸지 판단하는데 고려되는 요소
    - 중복되는 값이 많다면 카디널리티가 낮고, 유니크할 수록 카디널리티가 높다.

  • DB에서 인덱스를 걸어주면 검색에는 유리하지만, 남발하게 될 경우 중간에 INSERT 하면 인덱스를 재배치 해야해서 성능이 저하된다.

  • 이진트리
    테이블에 인덱스를 작성하면, 테이블 데이터와 별개로 인덱스용 데이터가 이진트리 구조로 저장장치에 만들어진다.

  • 인덱스와 LIKE 쿼리
    LIKE 뒤에 오는 피연산자의 맨 앞에 와일드카드 %가 붙어 있으면(ex. name like %yeon) 인덱스를 타지 못한다. 문자열 정렬 순서를 이용할 수 없기 때문이다. 반면 name like kim% 이와 같이 뒤에 붙어 있다면 인덱스를 탄다.

  • DML은 데이터 조작 - SELECT, INSERT, UPDATE, DELETE

  • DDL은 데이터 정의 (테이블 생성, 컬럼수정과 같은 테이블 변경, 테이블 삭제 등) - CREATE, DROP, ALTER

  • 알고리즘 문제 풀이, 다이나믹 프로그래밍 유형 문제를 풀었다. 피보나치 수열과 같은 문제는 재귀적으로 수행하게 되면 중복된 연산을 수행할 수 있고 recursion depth와 같은 문제가 발생할 수 있다. 앞부분의 수열부터 연산하는 bottom-up 방식을 사용하는 것이 O(n) 시간복잡도를 갖는다.

0개의 댓글