본문 바로가기
반응형

전체글623

MySQL Update Subquery 성능 비교 (ver.5.6) 지난 포스팅으로 select ~ where in (서브쿼리)와 같은 서브쿼리가 MySQL 5.6 버전에서 대폭 최적화 되었음을 확인하였는데요. 이번에는 update (update ~ where in (서브쿼리)) 에서도 서브쿼리 최적화가 잘 작동하는지 확인해보겠습니다. 0. 테스트 환경 테스트 환경은 이전 select 테스트때와 같습니다. 메인 테이블 100만건 서브 테이블1 (인덱스 O) 1000건 서브 테이블2 (인덱스 X) 1000건 DDL 쿼리는 다음과 같습니다. 메인 테이블 -- 업데이트 대상 테이블 create table main_table ( id int not null auto_increment, target_id int not NULL, primary key (id) )ENGINE=Inn.. 2020. 9. 1.
직장인으로서의 시작 예전에 정말 재밌게 했던 게임중에 도탑전기 라는 게임이 있다. (도타 저작권 문제와 별개로)(출처 - 도탑전기 나무위키) 지금은 한국에서 더이상 서비스를 하지 않는 게임이다. 요즘 나오는 조각 모으기 모바일 게임의 시초 인 게임이다. 여러 신화에 나올 법한 영웅들을 5명 조합하여 전투를 하는 게임이다. 100명이 넘는 영웅들로 나만의 5명을 조합한다는 재미가 솔솔했다. 그 게임에는 "국민덱" 이라고 하는게 있었다. (덱이란 영웅들의 조합을 지칭한다.)(출처 - 도탑전기 공식 카페)유료 아이템을 산 사람이 아니라, 무료로 게임을 즐기는 사람도 쉽게 따라할 수 있는 보편적인 조합이다. 즉, 웬만하면 따라만 하면 실패하지 않는 고효율의 조합이라는 것이다. 국민덱은 너무 많은 사람들이 하고 있고, 나만의 영웅 .. 2020. 8. 31.
MySQL where in (서브쿼리) vs 조인 조회 성능 비교 (5.5 vs 5.6) MySQL 5.5에서 5.6으로 업데이트가 되면서 서브쿼리(Subquery) 성능 개선이 많이 이루어졌습니다. 이번 시간에는 MySQL 2개의 버전 (5.5, 5.6) 에서 서브쿼리를 통한 조회 (Select)와 Join에서의 조회간의 성능 차이를 비교해보겠습니다. MySQL의 정석과도 같은 Real MySQL 책이 MySQL 5.5 버전을 기준으로 하다보니 5.6 변경분에 대해서 별도로 포스팅하게 되었습니다. 0. 테스트 환경 테스트용 테이블은 2개를 만들었습니다. 메인 테이블 100만건 서브 테이블1 (인덱스 O) 1000건 서브 테이블2 (인덱스 X) 1000건 DDL 쿼리는 다음과 같습니다. 메인 테이블 -- 업데이트 대상 테이블 create table main_table ( id int not .. 2020. 8. 27.
오늘의 질문 2020.08.16 Q.1 Q. 매번 동욱님 글을 볼때마다 "인텔리제이에 이런 기능이 있었어!?", "스프링 / JPA에 이러한 이슈가 있다니.." 라고 놀랍니다. 개인적으로 공부하는것에 있어서 정보를 어디서 얻는지 궁금합니다!A. 음, 일단 저는 철저하게 회사 중심의 개발자라서요. 주제의 대부분은 (거의 80%이상?) 회사에서 개발하면서 만난 문제들 입니다. (저 혹은 제 주변의 개발자분들이 만난 문제들) 이를 해결하기 위해 공부하고 정리한게 블로그에 올라온다고 생각하시면 되는데요. 이를테면, 인텔리제이와 같은 개발환경에 관한 것들은 업무를 진행하면서 "아 불편한데 이런 기능은 없나?" 라는 마음에 찾아보게 되고, 발견하게 되면 정리합니다. 스프링/JPA 등과 같은 기술에 관해서는 철저하게 지금 팀의 문제를 해결하기 위한.. 2020. 8. 17.
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.
IntelliJ에서 JPA ER Diagram 확인 방법 최근엔 IntelliJ 환경에서 JPA로 개발 하시는 분들이 많아졌는데요. JPA로 개발하다보면 실제 테이블의 연관관계를 확인하기 보다는 JPA Entity 간의 관계를 한눈에 보길 원할때가 많습니다. 특히나 복잡한 Entity 간의 관계는 코드만으로는 쫓아가는데 한계가 있는데요. 이럴때 IntelliJ에서는 JPA Entity 기반의 ER Diagram을 지원합니다. 특별히 큰 설정없이 확인할 수 있으니, 어떻게 하면 되는지 바로 확인해보겠습니다. 1. 프로젝트에 JPA Support 활성화 이미 프로젝트에 JPA Support 를 활성화 시키신 분들은 바로 2번으로 가시면 됩니다. 먼저 IntelliJ 좌측 상단의 File -> Project Structure 를 차례로 클릭해서 이동합니다. Proj.. 2020. 8. 11.

728x90
반응형