반응형

이동욱님 4

[Querydsl] 성능개선 - 3편 ( group by, 커버링 인덱스, update )

이 글은 우아한 형제들 콘서트에서 이동욱님의 영상을 보고 정리를 위한 글입니다. 이 글에 작성된 예시는 모두 Github에 올려두었습니다. Group By 최적화 Mysql 사용 시 index가 걸려있지 않는 컬럼을 group by 할 경우 file sort가 발생합니다. Index가 걸려있지 않는 경우 select * from house group by name Index가 걸려있는 경우 select * from house group by id file sort가 발생하면 성능이 떨어질 수 밖에 없습니다. 이 경우 order by 절에 null을 넣으면 file sort가 발생하지 않습니다. select * from house group by name order by null 하지만 안타깝게도 Quer..

Develop/spring-data 2021.02.04

[Querydsl] 성능개선 - 2편 ( N + 1 )

이 글은 우아한 형제들 콘서트에서 이동욱님의 영상을 보고 정리를 위한 글입니다. 이 글에 작성된 예시는 모두 Github에 올려두었습니다. N + 1 Entity 기반인 Jpa, Querydsl 을 사용하다 보면 N + 1은 한번 씩 겪는 문제라고 생각합니다. N + 1이 무엇이고 왜 발생하는지 알아보겠습니다. 먼저 아래의 코드를 살펴보겠습니다. @Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @DynamicUpdate @DynamicInsert public class House { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; private String n..

Develop/spring-data 2021.02.01

[Querydsl] 성능 개선 1편

이 글은 우아한 형제들 콘서트에서 이동욱님의 영상을 보고 정리를 위한 글입니다. 이 글에 작성된 예시는 모두 Github에 올려두었습니다. 1. 동적 쿼리 사용 시 BooleanExpression을 사용하자! Querydsl에서 동적쿼리 사용방법은 조건문에 null을 넣으면 조건문이 무시되는 방법을 사용하면 됩니다. public Staff dnamicQuery(String name) { return queryFactory .selectFrom(staff) .where(name == null ? null : name) .fetchOne(); } 위처럼 코드를 작성한다고 가정했을 때 동적 조건이 많아진다면 쿼리는 매우 복잡해질 것입니다. 그래서 BooleanExpression을 리턴하는 메소드를 생성하여 사..

Develop/spring-data 2021.01.29

[Jetbrain 강의] 온/오프라인에서 활동하는 인플루언서의 이야기 (백기선님, 이동욱님, 박상권님, 백승주님)

Jetbrain 강의를 시청하고 와닿는 주제 위주로 개인적인 정리하는 글을 작성하겠습니다. 시간은 약 50분정도로 Jetbrain 강의 4 Session 중 마지막 Session 내용을 정리하겠습니다. 개인적으로 존경하시는 분들의 강의이므로 시간이 어떻게 가는지도 모르게 시청했네요 :) 이 글에서 작성되는 내용은 모든 내용이 아니고 제가 이해한대로 작성하므로 원본 영상과 내용이 다를 수 있습니다. 원본 영상을 보시고 싶으시면 여기를 참조해주세요. 블로그를 작성하는 이유 기억은 무한하지 않습니다. 기억이 사라지기 전에 블로그로 남겨놓는 공간으로 블로그를 선택하여 작성한다. 퍼블릭한 공간이므로 글을 작성하기에 앞서 한번 더 검색해보게 되고 정리하게 된다. 사람들이 보게 되면 다른 방법도 제시해주고 공유할 수..

MindControl 2020.12.09
728x90
반응형