묻고 답해요
143만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨SW 개발자를 위한 성능 좋은 SQL 쿼리 작성법
섹션2 조건절 상수화 이슈(로컬변수, 사용자정의함수), 테이블 변수 최적화 이슈
1) index 열에 조건으로 로컬변수를 사용하면 안되는데매개 변수는 된다는게 좀 희한하네요혹시 이 부분 관련해서 참조할 수 있는 사이트가 있을까요?2) 그리고 12분부터 테이블 변수 사용 예를 들어주셨는데일반 테이블을 사용했을떄는 Order Detais 테이블 검색 후Orders 테이블하고 결합한다고 설명해주셨는데====================================SELECT TOP(5) *FROM dbo.Orders AS o INNER JOIN dbo.[Order Details] AS dON o.OrderID = d.OrderIDWHERE d.ProductID < 2====================================테이블 변수(@Orders)를 사용했을때는@Orders를 먼저 처리하고 Order Details을 처리한다고 해주셨는데이게 문제인 이유는 @Orders 를 먼저 검색하게 되면 where 조건이쓸모 없게 되어 인건가요?====================================SELECT TOP(5) *FROM [Order Details] AS d INNER JOIN @Orders AS oON o.OrderID = d.OrderIDWHERE d.ProductID < 2====================================
-
미해결Real MySQL 시즌 1 - Part 1
LATEAL 사용 관련 질문
안녕하세요. 현재 강의를 수강중인 학생입니다. RATERAL 사용 관련되어 질문이 있어 글 남겨드립니다. 잘못된 지식일 수 있지만, 서브쿼리를 사용하면 DBMS에서 지원하는 최적화를 지원받지 못해 서브쿼리를 사용하는 것보다는 최대한 조인을 사용하거나 차라리 쿼리를 나눠서 사용하는 것을 권장한다고 알고 있었습니다. 그런데 해당 강의를 수강하고 LATERAL의 사용을 적극 권장하셔서 제가 알고 있는 지식과 충돌하는 것 같습니다 혹시 어떤 경우에 LATERAL을 사용 하는 것이 좋을 지 여쭤보고자 글을 작성합니다.감사합니다.
-
해결됨SW 개발자를 위한 성능 좋은 SQL 쿼리 작성법
쿼리 튜닝 관련 강의는 ..
쿼리 튜닝 관련 교육은 이걸 보면 되나요?https://www.inflearn.com/course/sql-%EC%BF%BC%EB%A6%AC%EB%8A%A5%EB%A0%A5
-
미해결데이터베이스 중급(Modeling)
서가,책 primary key 설정에 대한 질문입니다.
로직 상 서가가 등록될 때 서고id가 null값이 되면 안되는 경우에서 서가 id와 서고 id를 둘 다 primary key를 주셨는데 서가 id만 primary key 주고 서고 id는 not null 조건으로 해서 테이블 설계 해도 되는지요? 만약 된다면 두 방식의 장단점도 설명해주시면 감사하겠습니다.
-
미해결Real MySQL 시즌 1 - Part 1
수업과는 상관 없을 수 있는 질문인데요..
안녕 하세요..이런 질문을 드려도 될까 모르겠습니다만..현재 운영 되는 사이트는 ms-sql 로 bak 파일 기준 약 50기가 정도 됩니다.사이트를 개편 하려고 하고 있는데요..mysql 로 바꾸는 것을 논의 중 입니다.처음 부터 데이터가 50기가 가 입력 되는 것은 아니고..운영 하면서 데이터가 늘어날텐데.. 경험 상 50기가 정도 될 것으로 예상 됩니다.특정 테이블은 몇천만건의 데이터가 입력 될 수도 있는데요..mysql 이나 mariadb 로 이 정도의 데이터베이스를 운영 할 수 있을지..사이트 속도 에는 큰 문제가 없을지..조언 부탁 드립니다.감사 합니다.
-
해결됨Real MySQL 시즌 1 - Part 2
복합 인덱스의 컬럼중 선행 컬럼을 조건에서 누락해도 인덱스가 사용될 수도 있나요?
안녕하세요. 이제 2회차로 다시 잘 보고 있는 수강생입니다 🙂 Ep15를 보던 중 복합 인덱스의 컬럼들 중 선행컬럼을 조건에서 누락할 경우 풀 스캔이 될 수 있다고해서 직접 쿼리를 실행해봤습니다. 환경: MySQL 8.2.0쿼리explain select * from users where joined_at > '2022-07-24 00:00:00';결과8.0.21버전부터는 인덱스 스킵 스캔을 통해 선행 컬럼이 조건에 포함되지 않아도 후속 컬럼을 이용해 인덱스 일부 활용이 가능하다고 하는데 이 때문에 위와 같은 실행 계획나 나온걸까요?
-
미해결[2024 리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]
섹션 1, 2의 강의자료를 못찾겠어요
[꼭 들어주세요] 강의 자료 다운로드 관련다운로드를 했는데 압축파일안에 강의자료가 없는 것 같아요 ㅠㅎ
-
미해결데이터 분석 SQL Fundamentals
Join on 순서 관련 질문드립니다.
sql을 시작할 때 체계적으로 공부하지 못해서 기초적인 질문일 수도 있는데 해답을 못 찾았습니다 ㅜㅜjoin 문 사용 시 on 뒤의 컬럼 순서에 따라서도 sql문 결과값이 다른지 궁금합니다. 예를 들어,select * from tablea a join tableb b on a.product_id = b.product_id 2. select * from tablea a join tableb b on b.product_id = a.product_id두 sql문을 실행했을 때 차이가 있을까요?현업에서 2번 형태를 많이 본 것 같아서 혹시 차이가 있다면 어떤 차이인지 설명해주시면 감사하겠습니다.
-
해결됨Real MySQL 시즌 1 - Part 2
SKIP LOCKED 부분에서 INNER JOIN이 아니고 LEFT JOIN이 걸릴수 있다면
예제에서는 WHERE 절 때문에 LEFT JOIN이 INNER JOIN으로 최적화되는 것으로 알고 있지만 만약에 LEFT JOIN으로 걸릴 수 있는 쿼리라면 SKIP LOCKED 의 잠금 경합의 결과가 달라질 수도 있나요?
-
해결됨Real MySQL 시즌 1 - Part 1
강의 자료는 따로 제공되지 않나요??
질문 내용은 제목 그대로 입니다!
-
해결됨SW 개발자를 위한 성능 좋은 SQL 쿼리 작성법
메시지 창 관련 문의
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.수업의 14:23 을 참고하면 메시지 창에 스캔수, 논리적 읽기, 실제 읽기, ... 등값 들이 보이는데 제 화면의 메시지창에는 (8개 행이 영향을 받음)이것밖에 안뜹니다 ㅠㅠ보이도록 하는 방법이 궁금합니다
-
해결됨Real MySQL 시즌 1 - Part 1
조건 없는 COUNT(*)에 대한 궁금증
안녕하세요, 강의 잘 듣고 있습니다. 강의와 책을 동시에 보면서, 학습을 하고 있습니다. 근데 강의와 도서에서 설명하는 내용에 다른점이 있는 것 같아서 질문드립니다. REAL MySQL 8.0 (2권) 중 11.4.6 COUNT() 절에서는 아래와 같이 설명되어 있습니다.MyISAM 스토리지 엔진을 사용하는 테이블은 항상 테이블의 메타 정보에 전체 레코드 건수를 관리한다. 그래서 "SELECT COUNT(*) FROM tb_table"과 같이 WHERE 조건이 없는 COUNT(*) 쿼리는 MySQL 서버가 실제 레코드 건수를 세어 보지 않아도 바로 결과를 반환할 수 있기 때문에 빠르게 처리된다.하지만, 강의 Ep.03 COUNT(*) vs COUNT(DISTINCT) 튜닝 에서는 WHERE 절 없는 COUNT(*) 는 제거 대상이라고 설명을 해주셨습니다. 책의 내용처럼 메타 정보에서 가져온다고 한다면 굳이 제거 대상이 될 것 같지는 않은데, 혹시 제가 놓친 배경이 있었을까요? 아니면 이게 뭔가 이분법적인 차원에서 접근하기에는 어려운 내용일까요?
-
해결됨Real MySQL 시즌 1 - Part 2
단일 인덱스 크기, 전체 인덱스 크기 구하는 계산식
안녕하세요!14분 쯤 나오는 단일 인덱스 크기와 전체 인덱스 크기가 얼마인지 나오는데, 각각 구하는 계산식을 알 수 있을까요..?어떻게 8바이트가 1억건의 테이블이 있을때 6GB가 되는지 잘 모르겠습니다..8바이트 x 1억 레코드 = 800MB800MB / 1000 = 0.8GB인줄알았는데 따로 계산법이 있는걸가요?추가적으로 필요인스턴스 관련해서 aws에서 계산해보고싶은데 aws요금 계산기에서 Aurora MySQL 서비스 로 검색하면되는게 맞을까요? 서비스 찾기에 Aurora MySQL 검색해도 결과없음으로 나와서요..ㅠㅠ
-
해결됨Real MySQL 시즌 1 - Part 2
primary key에 시간, uuid로 복합키로 설정하는 경우
안녕하세요!좋은 강의 감사합니다!이력 테이블의 대용량 데이터를 저장하기 위해pk값 설정 시 정수형은 제한이 있다고 생각해서시간+uuid로 복합키를 설정하려고 하는데요! 레인지 파티션도 사용하려구 하구요! 이렇게 할 경우 결국엔 String타입으로 저장되서 클러스터링 인덱스가 제대로 저장이 될까? 고민이 있었는데요!이런 고민을 갖고 강의를 보게 되었는데, 강의 내용을 참고해보면uuid값이 정수형보다 길어서 pk로 사용할 경우메모리를 많이 차지해서 메모리크기가 큰 인스턴스를 사용해야 하므로 비용처리가 드는걸로 이해했습니다.uuid대신 snowflake나 sonyflake 라이브러리로 대체하는게 더 좋다고 말씀해주셨는데, 해당 라이브러리가 망하거나(?) 제대로 작동을 안할경우의 위험성도 고려해봐야할것 같다는 생각이 들어서요! 제가 요 라이브러리는 잘 몰라서 여쭤보고자합니다!그래서 질문은 아래 3가지 입니다!Q1. 시간+uuid로 복합키로 pk를 설정하거나, 애플리케이션단에서 시간+uuid만든 String 타입을 pk를 설정하는것보다, snowflake 라이브러리 하나만 사용하는게 더 메모리가 효율적인게 맞을까요?Q2. snowflake가 실제로 현업에서도 많이 쓰이는지 해당 라이브러리가 추후에 제대로 작동을 안할 경우에는 어떻게 대처를 해야 하는지 궁금합니다!Q3. 추가적으로 uuid관련 내용이 Real Mysql 2권 중 어디에 있는지도 궁금합니다! 목차에서는 찾을 수가 없어서요 ㅠㅠ
-
미해결견고한 결제 시스템 구축
혹시 코드 리뷰 신청해도 될까요...?
안녕하세요! 강의 너무 잘 봤고 강의에서 학습한 내용을 사이드 프로젝트에 적용했는데요! 뭔가... 찝찝하고... 리팩토링을 어떻게 해야할지 잘 모르겠어서요...당연히 보수는 드릴 예정입니다! 고려해주시면 정말 감사하겠습니다!
-
미해결오라클 성능 분석과 인스턴스 튜닝 핵심 가이드
full scan 시 OS I/O 질문있습니다.
안녕하십니까. 강의 너무 잘 듣고 있습니다.질문이 생겨서 글을 남겨 봅니다.질문 1.index scan 시 buffer cache에 해당 블록이 없으면 디스크에 접근해야하는 random i/o가 발생하니까 sar 명령어로 보면 i/o wait 값이 20% 이상 올라가는건 이해가 됩니다.궁금점은 용량이 큰 테이블을 full scan 시, direct path read가 발생할 것이고, 이는 디스크에서 바로 서버프로세스로 블록을 로드 하잖습니까. 근데 이떄도 분명히 i/o가 발생할텐데 왜 sar 명령어에서 i/o wait 값이 많이 올라가지 않을까요?? full scan은 multi block 으로 i/o를 읽기 때문에 그런건가요??질문 2.그리고 강의에서 말씀해주셨던 것 처럼 full scan시 테이블 용량이 1M(default)가 넘으면 direct path read가 발생한다고 하셨는데, 사실 요즘 시스템의 테이블은 거의다 1M이 넘을 것 같습니다. 그런데도 db file scattered 이벤트는 잘뜨던데 왜 그런걸까요?감사합니다
-
해결됨Real MySQL 시즌 1 - Part 1
Select for update locking
Select for update 시 lock 을 걸어 원 데이터를 버장힌다는 것은 이해 하였습니다그렇다면 a|b 가 동시 접근 하여 서로 다른 값으로 변경하려는 부분은 없고 동일 프로세스가 두번 진입 할 수 있다고 가정한다면어차피 update 시 xlock이 row에 대하여 획득하니select for update 는 필요없는게 맞다라고 이해를 했습니다이 부분이 맞을까요?
-
미해결데이터 분석 SQL Fundamentals
조인실습-04 관련 질문있습니다.
안녕하세요, 유용한 강의 너무 감사합니다. 실습-04에서 category_name = 'Beverages'인 상품 정보를 불러오는 문제에서 결과값이 상이해 질문드립니다.아래와 같이 조인문을 실행했을 때 결과값이 3행만 나오는데 어떻게 수정해야 할까요?select a.category_name , b.product_id , b.product_name , c.company_namefrom nw.categories ajoin nw.products b on a.category_id = b.category_idjoin nw.suppliers c on b.supplier_id = c.supplier_idwhere a.category_name = 'Beverages'
-
미해결견고한 결제 시스템 구축
코틀린 선택 이유
실습 코드가 코틀린으로 작성해주셨는데 자바가 아닌 코틀린을 선택하신 특별한 이유가 있으신지 궁금합니다!
-
해결됨SW 개발자를 위한 성능 좋은 SQL 쿼리 작성법
초기 세팅
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.강의자료의 .sql파일을 실행하려는데 ms sql를 세팅해야하나요?버전도 알려주시면 감사하겠습니다