본문 바로가기
반응형

Join4

여러컬럼으로 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.
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.
패스트캠퍼스 SQL튜닝캠프 5일차 (1) - 고급 조인 테크닉 여러 상황에서 효율적으로 조인을 사용하는 방법을 알아보겠습니다.1. 누적매출 구하기아래와 같은 형태의 테이블이 있다고 가정하겠습니다.(출처 : 구루비)이 테이블의 데이터에 전체매출 데이터를 포함해서 조회하고 싶습니다.(이렇게 누적 매출이 추가되고 싶습니다.)오라클이라면 분석함수를 이용해서 해결할 수 있습니다.select 지점, 판매월, 매출, sum(매출) over(partition by 지점 order by 판매월 range between unbounded preceding and current row) 누적매출 from 월별지점매출partition by는 Group by에서 집합을 뺀 기능이라고 보시면 됩니다. 즉, 지점 단위로 잘라내기만 한 것입니다.unbounded preceding는 현재 윈도우.. 2017. 8. 30.
하루 30분 36강으로 배우는 SQL 첫걸음 책 구매 링크 거의 대부분이 아는 내용들이라 아마 많은 분들은 보면서 크게 오오 하는건 없으실것 같다. 하지만 나는 최근 2년간 ORM만 사용하다보니 실제 쿼리 작성할 일이 거의 없어서 (기획자분들께 데이터를 CSV로 뽑아드릴때나, ISMS 심사할때 심사관들 앞에서 쿼리날릴때 정도?) 그래도 기본은 알아야하지 않나 싶어서 지하철 출퇴근 시간에 읽으면서 정리중! 블로그에 바로 쓸까 Github에 쓸까 하다가 마크다운 에디터를 Visual Studio Code에서 Atom으로 환승한 기념으로!! 마크다운으로 작성한다. (정말 좋다. 나중에 시간이 되면 sublime text/ visual studio code / atom 비교글을 써야겠다.) 참고로 아래 내용은 책의 모든 내용은 아니다. 개인적으로 중요하다.. 2016. 10. 13.

728x90
반응형