inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

강의에서 나온 IN 최적화 관련 질문

미해결

김영한의 실전 데이터베이스 - 기본편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요. 이번 복합 인덱스3 강의에서 인덱스 활용 팁으로 범위 조건을 IN 절로 바꿔 최적화하는 부분을 설명해 주셨습니다. IN 이 마치 OR 처럼 변화될 수 있다고 설명해 주셨고 실제 쿼리 실행 시에 이를 확인할 수 있었습니다.(강의 시간 18분 경) 그런데 이후 비유해주신 쿼리에서는 UNION ALL 을 사용하셨습니다. 저는 OR 과 UNION ALL 이 동일한 기능을 수행한다 생각했지만 실제로 눈으로 확인하고 싶어서 다음 세가지 쿼리를 모두 EXPLAIN , ANALYZE 해보았습니다. 1) 기존 IN 쿼리 EXPLAIN ANALYZE SELECT * FROM items WHERE category IN ('패션', '헬스/뷰티') AND price = 20000; 2) OR 로 풀어낸 쿼리 EXPLAIN ANALYZE SELECT * FROM items WHERE (category = '패션' AND price = 20000) OR (category = '헬스/뷰티' AND price = 20000); 3) UNION ALL 로 풀어낸 쿼리 EXPLAIN ANALYZE SELECT * FROM items WHERE category = '패션' AND price = 20000 UNION ALL SELECT * FROM items WHERE category = '헬스/뷰티' AND price = 20000; 그 결과 2)의 처리 cost는 1.41, 3)의 처리 cost는 0.7로 나타났으며, 1)은 2)와 동일하게 실행되었습니다. 여기서 다음 의문이 나타났습니다. 1) IN 최적화는 OR 또는 UNION ALL 방식으로 옵티마이저가 상황에 따라 선택하나요? 혹은 OR 방식으로만 처리하나요? 2) OR , UNION ALL 을 모두 사용할 수 있을 때, 언제 각각을 사용하는 것이 더 좋을까요? 그리고 위 경우에서는 왜 UNION ALL 이 더 cost가 작았을까요? 3) 만약 새로운 카테고리가 추가된다면 모든 IN 쿼리에 해당 카테고리를 추가할 수도 있을 것 같습니다. 그래서 애플리케이션 계층(JPA 등으로)에서 category >= '패션' 인 SELECT DISTINCT 쿼리 1번, 해당 값을 통해 IN 에 넣어주는 쿼리 1번, 총 2번 쿼리를 실행하는 방식으로 바꾼다면 기존 쿼리를 수정하지 않아도 괜찮을 것 같은데 실무면에서 어떻게 생각하시는지 궁금합니다! 긴 질문이었습니다. 감사합니다!

  • sql
  • mysql
  • dbms/rdbms
ZZAMBA 댓글 1 좋아요 0 조회수 78

실무에서 느린쿼리나 벡엔드 성능 테스트하는 방법이 궁금합니다.

미해결

김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복

75강 인덱스 설계 - 실습 관련 강의 중에 느린 쿼리를 로그 분석을 하거나 성능 테스트를 통해서 실제 쿼리 패턴과 성능을 측정해서 특정 컬럼에 인덱스를 적용해야 한다고 하셨는데요. 로그를 하나씩 확인하면서 각 쿼리별로 비교하기가 조금 불편하고 어려울 것 같습니다. 또한 몇가지 쿼리 케이스만으로 성능을 일반화하기도 쉽지 않을 것 같구요. 실무에서 느린쿼리나 다양한 벡엔드 성능 테스트를 수행하는 별도의 모니터링 프로그램이나 방법론이 존재하는지 궁금합니다. 또한 저희 실습에서 사용한 MySQL에서는 어떤 식으로 테스트를 수행하면 좋을지 알려주세요.

  • sql
  • mysql
  • dbms/rdbms
  • 소프트웨어-설계
  • SQLD
개발하는 분석가 댓글 1 좋아요 0 조회수 137

22강 마지막 영상 짤림

해결됨

강의 하나로 끝내는 백엔드 모든 지식!

큰 문제는 아닙니다만 22강이 마지막에 갑자기 종료되는 문제가 있습니다. 따로 어디에 말씀드려야 할지 모르겠어서 Q&A 게시판에 남깁니다.

  • docker
  • rest-api
  • dbms/rdbms
  • backend
  • infrastructure
taeho7702 댓글 2 좋아요 0 조회수 78

View와 프로시저 차이는 무엇인가요?

미해결

김영한의 실전 데이터베이스 - 기본편

[질문 내용] View와 프로시저는 비슷한 개념인 것 같은데 차이점이 무엇인가요?

  • sql
  • mysql
  • dbms/rdbms
  • SQLD
kimyongjun0129 댓글 1 좋아요 0 조회수 107

분산 환경을 고민해야 하는 시점

해결됨

분산 데이터 모델링

안녕하세요! 시스템 개발 및 설계 과정에서 '대규모 시스템', '분산 환경', '분산 데이터 모델링'과 같은 개념들을 본격적으로 고려하고 도입해야 하는 시점은 언제일까요? 실무에서 경험해보지 못해서 '대규모' 라는 말이 막연해서 실무에서 어떤 것을 기준으로 고려하는지 혹은 지표 같은 것을 측정하는 방법이 있는지 궁금해서 질문 드립니다!

  • dbms/rdbms
  • msa
  • modeling
  • 소프트웨어-설계
  • 시스템-디자인
  • database-modeling
하양이 댓글 2 좋아요 0 조회수 103

쇼핑몰 주문 테이블 관련 문의

미해결

김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복

교육용이라 아직 요구사항이 명확히 없는 상태에서 테이블구조가 나오는 것 같은데 만약 하나의 주문에 여러 상품이 들어올 수 있고 각각의 상품을 취소할 수 있게 되야한다고 한다면 어떻게 변경하게 될까요?

  • sql
  • mysql
  • dbms/rdbms
  • software-design
  • SQLD
Rorschach 댓글 1 좋아요 0 조회수 81

자격증 관련 문의

미해결

김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복

안녕하세요 🙂 유익한 강의 감사드립니다. 다름이 아니오라 설계 1, 2편 까지만 들어도 SQLD, SQLP 자격증 취득이 가능할 수준일지 여쭙고 싶습니다. 감사합니다.

  • sql
  • mysql
  • dbms/rdbms
  • 소프트웨어-설계
  • SQLD
책개발 댓글 1 좋아요 0 조회수 85

강의 중 추가 질문 사항

미해결

JPA (ORM) 개발자를 위한 고성능 SQL (High-Performance SQL)

강사님 안녕하세요, 추가적인 질문사항이 있습니다. JSON 데이터 마이그레이션 시 주의사항과 베스트 프랙티스에 대해 알 수 있을까요? JSON Injection 공격을 방지하는 방법도 알고 싶습니다. JSON 컬럼의 압축과 스토리지 최적화 기법에 대해서도 알고 싶습니다.

  • sql
  • dbms/rdbms
  • performance-tuning
  • sql-query
양성빈(Robert) 댓글 1 좋아요 0 조회수 68

강의 중 궁금사항 질문

미해결

JPA (ORM) 개발자를 위한 고성능 SQL (High-Performance SQL)

안녕하세요, 해당 강의를 들으면서 추가적인 질문이 있어서 질문드립니다. 질문은 아래와 같습니다. JSON 인덱스 생성이 쓰기 성능에 미치는 영향은 어떤게 있을까요? 물론 AI Agent에게 물어봐서 해결이 가능하지만 강사님 생각이 궁금하여 질문 드려봅니다!

  • sql
  • dbms/rdbms
  • performance-tuning
  • sql-query
양성빈(Robert) 댓글 0 좋아요 0 조회수 67

실무에서 sql 쿼리의 성능 개선

미해결

김영한의 실전 데이터베이스 - 기본편

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 실무에서 sql 쿼리의 성능 개선시, '유의미한 개선' 이라 판단하는 기준으로 어떤 지표로 판단할까요? 단순 실행 시간 뿐만아니라 어떤 지표를 보는 편인가요 ? 얼만큼의 성능 개선이 유의미한 개선이 될지 궁금합니다.

  • sql
  • mysql
  • dbms/rdbms
  • SQLD
최하영 댓글 1 좋아요 0 조회수 56

강의 중 추가 질문

미해결

JPA (ORM) 개발자를 위한 고성능 SQL (High-Performance SQL)

강사님 안녕하세요, 먼저 강의를 잘 듣고 있다는 점을 미리 말씀드리고 질문 드릴려고 합니다. 몇 가지 질문들이 있는데요. 질문 내용은 다음과 같습니다. JSON과 정규화된 테이블 중 어떤 경우에 JSON을 선택해야 하나요? JSON 데이터에 대한 트랜잭션과 동시성 제어 관련해서도 조금 궁금합니다. JSON Schema validation을 통한 데이터 무결성 보장 방법에 대해서도 상세한 설명 혹시 가능하실까요? 항상 좋은 강의를 남겨주셔서 감사드리며 질문에 대한 답변 기달리겠습니다 :)

  • sql
  • dbms/rdbms
  • performance-tuning
  • sql-query
양성빈(Robert) 댓글 1 좋아요 0 조회수 69

DDL 구문에서의 COMMENT 활용 방법 문의드려요.

미해결

김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복

안녕하세요. 테이블 정의서를 열어서 보다 자세한 사항을 확인하기 전에 접속된 세션에서 MySQL에 생성된 DDL 구문을 툴에서 추출하여 먼저 구조를 파악하고자 COMMENT를 활용하여 "컬럼 한글명(논리명)" 기입하여 사용하려고 하는데 비고 같이 진짜 설명을 써놓는 사례도 있는 것 같아서 혹시, 실무에서 COMMENT를 어떻게 활용하시는지 궁금합니다. Ex) -- 실습용 쇼핑몰 테이블 정의서 member 테이블의 login_id에 -- comment "컬럼 한글명(논리명)" 적용 예시 (하고 싶은 방향) login_id VARCHAR(50) NOT NULL COMMENT '로그인 ID' -- comment "비고 같이 길게 설명" 예시 login_id VARCHAR(50) NOT NULL COMMENT '로그인 시에만 사용하는 별도의 아이디로, 이메일 및 블로그 등을 통해 외부로 노출되지 않는 보안설정입니다. '

  • sql
  • mysql
  • dbms/rdbms
  • 소프트웨어-설계
  • SQLD
알센 댓글 1 좋아요 0 조회수 61

레거시 프로젝트를 현대적 PK 설계 방식으로 변환하는 과정이 궁금합니다.

미해결

김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복

현대적 설계에서는 대리키 PK와 자연키 UNIQUE 제약조건으로 데이터베이스 설계하는 것이 합리적이고 안정적이라고 하셨는데요 아직 대부분 레거시 프로젝트는 자연키를 PK로 사용하거나, 일부 테이블은 대리키로 PK를 사용하지만 여전히 많은 테이블들은 해당 일부테이블의 PK를 FK를 사용하여 복합 PK로 생성하여 사용하는 경우가 많습니다. 이런 레거시 프로젝트들의 복합 PK를 대리키 PK로 변환한다고 하면 전체적인 데이터베이스 구조를 재 설계해야 하는것이 맞겠지만 만약 기존 운영중인 테이블 구조를 유지하면서 PK를 변환하게 된다면, 기존 운영중인 테이블에 대리키 PK를 생성 후 기존 사용중이던 복합 PK에 UNIQUE 설정을 추가해주는 방식으로 변환하면 큰 문제가없을까요? 아니면 비즈니스 상황에따라 추가 제약조건을 추가해야 할 것들이 있을까요?

  • sql
  • mysql
  • dbms/rdbms
  • 소프트웨어-설계
  • SQLD
브로콜링 댓글 2 좋아요 0 조회수 92

데이터 베이스 판단 기준

미해결

김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복

안녕하세요 실무에서 RDBMS, NoSQL을 선택하는 기준에 대해서 궁금합니다. 어떤 서비스에서 어떤 데이터 베이스가 더 적합한지 판단하는 기준이 궁금합니다.

  • sql
  • mysql
  • dbms/rdbms
  • 소프트웨어-설계
  • SQLD
freejsut3 댓글 1 좋아요 0 조회수 67

현업에서 많이 사용되는 상용 툴은 어떤게 있나요?

미해결

김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복

안녕하세요! 강의에서 상용툴에 대한 코멘트를 짧게 해주셨는데, ERD나 DDL 만들 때 현업에서 많이 사용되는 상용툴은 어떤게 있는지 궁금합니다!

  • sql
  • mysql
  • dbms/rdbms
  • 소프트웨어-설계
  • SQLD
philE 댓글 1 좋아요 0 조회수 96

실무에서 외래키의 사용

미해결

김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복

안녕하세요. 강의 잘 보고 있습니다! 다름이 아니라, 제가 알고있는 짧은 지식으로는 실무에서는 실제 외래키 관계가 있더라도, 외래키를 선언하는걸 지양하는 것으로 알고 있습니다. 혹시 영한님은 실무에서 외래키를 선언하여 외래키 제약조건 사용을 지향하셨는지가 궁금합니다!!

  • sql
  • mysql
  • dbms/rdbms
  • 소프트웨어-설계
  • SQLD
mindecco 댓글 2 좋아요 0 조회수 104

draw.io 다크모드 어떻게 할수있을까요?

미해결

김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복

영한님 안녕하세요. 강의 영상 처럼 draw.io 다크모드로 변경하고 싶은데 어떻게 할수있을까요? 감사합니다.

  • sql
  • mysql
  • dbms/rdbms
  • 소프트웨어-설계
  • SQLD
soap 댓글 2 좋아요 0 조회수 1260

샤딩한 테이블에서 B Tree 인덱스를 사용하는 것

해결됨

분산 데이터 모델링

예시로 들었던 '게시판 별 게시글' 같은 인덱스 테이블에서 B Tree 인덱스를 사용하면 된다는 식으로 말씀하셨습니다. 근데 전통적인 RDBMS에는 샤딩 기능조차 존재하지 않는데, 분산된 데이터베이스에서도 테이블 수준의 B Tree 인덱스처럼 동작하는 것처럼 말씀하신 것 같아, 이것이 맞는지 문의 드립니다.

  • dbms/rdbms
  • msa
  • modeling
  • 소프트웨어-설계
  • 시스템-디자인
  • database-modeling
Architect 댓글 2 좋아요 0 조회수 84

인덱스 사용 패턴 질문

해결됨

실전! 데이터베이스 완전정복 [설계편]

안녕하세요, 강의 중 궁금한 점이 생겨 질문드립니다. GROUP BY 사용 패턴3: 필터링 후 그룹화에서 WHERE status = 'paid' GROUP BY status ORDER BY status 처럼 동일한 컬럼을 사용하는 경우, 하나의 인덱스로 효율적으로 처리할 수 있다고 말씀하셨는데요. 이 경우 WHERE 절에서 status = 'paid' 로 필터링하면, 결과가 모두 동일한 status 값을 가지게 되어 GROUP BY나 ORDER BY를 추가해도 WHERE 절만 사용한 것과 결과가 동일하지 않을까요? 궁금한 점: WHERE, GROUP BY, ORDER BY에서 동일한 필드를 사용하는 실제 사용 사례가 있을까요?

  • mysql
  • dbms/rdbms
  • database
  • modeling
  • db
  • 카카오공채-개발
YS 댓글 2 좋아요 0 조회수 117

id bigint unsigned

미해결

김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복

테이블 만드실 때 id의 타입을 bigint 로 하고 unsigned는 선언하지 않으셨는데, 굳이 필요 없어서 사용하지 않으신걸까요?

  • sql
  • mysql
  • dbms/rdbms
  • 소프트웨어-설계
  • SQLD
ssshhh 댓글 1 좋아요 0 조회수 58

인기 태그

인프런 TOP Writers

주간 인기글