본문 바로가기
반응형

SQL4

여러컬럼으로 Join 맺어야할 경우의 인덱스 실제 발생했던 쿼리) SELECT i.id, i.titles[1] title, i.icon_url, ic.user_id FROM institutions i INNER JOIN interested_corporations ic ON ic.institution_id = i.id AND ic.deleted_at IS NULL INNER JOIN users u ON ic.user_id = u.id AND u.deleted_at IS NULL INNER JOIN vouchers v ON v.user_id = u.id AND v.deleted_at IS NULL AND v.course_id = ? WHERE i.priority > ? AND i.type = ? AND NOT (u.is_admin = true AND .. 2022. 1. 7.
Querydsl Select 필드로 Entity 사용시 주의 사항 JPA 기반의 애플리케이션 개발에서 복잡한 조회가 필요할때는 Querydsl을 많이 사용합니다.아무래도 Querydsl로 추상화된 상태에서 쿼리를 작성하다보면 실제 어떻게 쿼리가 발생하는지 확인하지 않고 개발할때가 많습니다. 이를테면 쿼리 한번으로 해결하기 위해 select 필드에 Entity를 그대로 선언하는 경우가 바로 그런 경우인데요.(아래와 같은 쿼리일때입니다.) // customer는 Customer queryFactory .select(Projections.fields(EntityB.class, ... EntityA.EntityC) // EntityA의 EntityC 를 바로 선언 ) .from(EntityA) .where(..조건문..) .fetch() 위와 같이 쿼리를 작성하게 되면 Ent.. 2020. 8. 13.
패스트캠퍼스 SQL튜닝캠프 2일차 - 인덱스 향상 5. 테이블 Random Access 부하 인덱스를 쓰는 이유는 RowId를 찾기 위함 RowId는 HDD에 있음 RowId를 해시 함수로 돌려 Clustering Factor 테이블 블럭들이 인덱스 정렬 순으로 얼마나 잘 정렬되어있는지에 대한 지표 6. 테이블 Random 액세스 최소화 튜닝 인덱스가 많을 때의 단점 Command(명령 : 등록/수정/삭제)시 인덱스 변경이 필요하여 시간이 많이 소모 인덱스 저장 장소가 필요하여 저장소 용량이 많이 필요하게 됨 옵티마이저가 인덱스를 보고 실행계획을 작성하는데, 이때 인덱스가 많으면 많을수록 옵티마이저는 잘못된 실행계획을 생성할 확률이 높다. 인덱스는 3개 이하를 권장한다. 인덱스 컬럼 추가로 해결하기 문제상황) 인덱스 : deptno + job selec.. 2017. 7. 30.
하루 30분 36강으로 배우는 SQL 첫걸음 책 구매 링크 거의 대부분이 아는 내용들이라 아마 많은 분들은 보면서 크게 오오 하는건 없으실것 같다. 하지만 나는 최근 2년간 ORM만 사용하다보니 실제 쿼리 작성할 일이 거의 없어서 (기획자분들께 데이터를 CSV로 뽑아드릴때나, ISMS 심사할때 심사관들 앞에서 쿼리날릴때 정도?) 그래도 기본은 알아야하지 않나 싶어서 지하철 출퇴근 시간에 읽으면서 정리중! 블로그에 바로 쓸까 Github에 쓸까 하다가 마크다운 에디터를 Visual Studio Code에서 Atom으로 환승한 기념으로!! 마크다운으로 작성한다. (정말 좋다. 나중에 시간이 되면 sublime text/ visual studio code / atom 비교글을 써야겠다.) 참고로 아래 내용은 책의 모든 내용은 아니다. 개인적으로 중요하다.. 2016. 10. 13.

728x90
반응형