inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

SKIP LOCKED 부분에서 INNER JOIN이 아니고 LEFT JOIN이 걸릴수 있다면

해결됨

Real MySQL 시즌 1 - Part 2

예제에서는 WHERE 절 때문에 LEFT JOIN이 INNER JOIN으로 최적화되는 것으로 알고 있지만 만약에 LEFT JOIN으로 걸릴 수 있는 쿼리라면 SKIP LOCKED 의 잠금 경합의 결과가 달라질 수도 있나요?

  • mysql
  • dbms/rdbms
  • backend
  • query-tuning
  • mysql-query
kekim 댓글 1 좋아요 0 조회수 232

강의 자료는 따로 제공되지 않나요??

해결됨

Real MySQL 시즌 1 - Part 1

질문 내용은 제목 그대로 입니다!

  • mysql
  • dbms/rdbms
  • backend
  • query-tuning
  • mysql-query
hayden.yoon 댓글 1 좋아요 0 조회수 345

메시지 창 관련 문의

해결됨

SW 개발자를 위한 성능 좋은 SQL 쿼리 작성법

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 수업의 14:23 을 참고하면 메시지 창에 스캔수, 논리적 읽기, 실제 읽기, ... 등 값 들이 보이는데 제 화면의 메시지창에는 (8개 행이 영향을 받음) 이것밖에 안뜹니다 ㅠㅠ 보이도록 하는 방법이 궁금합니다

  • sql
  • dbms/rdbms
edu02 댓글 1 좋아요 0 조회수 202

조건 없는 COUNT(*)에 대한 궁금증

해결됨

Real MySQL 시즌 1 - Part 1

안녕하세요, 강의 잘 듣고 있습니다. 강의와 책을 동시에 보면서, 학습을 하고 있습니다. 근데 강의와 도서에서 설명하는 내용에 다른점이 있는 것 같아서 질문드립니다. 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(*) 는 제거 대상이라고 설명을 해주셨습니다. 책의 내용처럼 메타 정보에서 가져온다고 한다면 굳이 제거 대상이 될 것 같지는 않은데, 혹시 제가 놓친 배경이 있었을까요? 아니면 이게 뭔가 이분법적인 차원에서 접근하기에는 어려운 내용일까요?

  • mysql
  • dbms/rdbms
  • backend
  • query-tuning
  • mysql-query
BEMELON 댓글 2 좋아요 0 조회수 248

단일 인덱스 크기, 전체 인덱스 크기 구하는 계산식

해결됨

Real MySQL 시즌 1 - Part 2

안녕하세요! 14분 쯤 나오는 단일 인덱스 크기와 전체 인덱스 크기가 얼마인지 나오는데, 각각 구하는 계산식을 알 수 있을까요..? 어떻게 8바이트가 1억건의 테이블이 있을때 6GB가 되는지 잘 모르겠습니다.. 8바이트 x 1억 레코드 = 800MB 800MB / 1000 = 0.8GB 인줄알았는데 따로 계산법이 있는걸가요? 추가적으로 필요인스턴스 관련해서 aws에서 계산해보고싶은데 aws요금 계산기에서 Aurora MySQL 서비스 로 검색하면되는게 맞을까요? 서비스 찾기에 Aurora MySQL 검색해도 결과없음으로 나와서요..ㅠㅠ

  • mysql
  • dbms/rdbms
  • backend
  • query-tuning
  • mysql-query
세진:) 댓글 2 좋아요 0 조회수 305

primary key에 시간, uuid로 복합키로 설정하는 경우

해결됨

Real MySQL 시즌 1 - Part 2

안녕하세요! 좋은 강의 감사합니다! 이력 테이블의 대용량 데이터를 저장하기 위해 pk값 설정 시 정수형은 제한이 있다고 생각해서 시간+uuid로 복합키를 설정하려고 하는데요! 레인지 파티션도 사용하려구 하구요! 이렇게 할 경우 결국엔 String타입으로 저장되서 클러스터링 인덱스가 제대로 저장이 될까? 고민이 있었는데요! 이런 고민을 갖고 강의를 보게 되었는데, 강의 내용을 참고해보면 uuid값이 정수형보다 길어서 pk로 사용할 경우 메모리를 많이 차지해서 메모리크기가 큰 인스턴스를 사용해야 하므로 비용처리가 드는걸로 이해했습니다. uuid대신 snowflake나 sonyflake 라이브러리로 대체하는게 더 좋다고 말씀해주셨는데, 해당 라이브러리가 망하거나(?) 제대로 작동을 안할경우의 위험성도 고려해봐야할것 같다는 생각이 들어서요! 제가 요 라이브러리는 잘 몰라서 여쭤보고자합니다! 그래서 질문은 아래 3가지 입니다! Q1. 시간+uuid로 복합키로 pk를 설정하거나, 애플리케이션단에서 시간+uuid만든 String 타입을 pk를 설정하는것보다, snowflake 라이브러리 하나만 사용하는게 더 메모리가 효율적인게 맞을까요? Q2. snowflake가 실제로 현업에서도 많이 쓰이는지 해당 라이브러리가 추후에 제대로 작동을 안할 경우에는 어떻게 대처를 해야 하는지 궁금합니다! Q3. 추가적으로 uuid관련 내용이 Real Mysql 2권 중 어디에 있는지도 궁금합니다! 목차에서는 찾을 수가 없어서요 ㅠㅠ

  • mysql
  • dbms/rdbms
  • backend
  • query-tuning
  • mysql-query
세진:) 댓글 2 좋아요 0 조회수 385

혹시 코드 리뷰 신청해도 될까요...?

미해결

견고한 결제 시스템 구축

안녕하세요! 강의 너무 잘 봤고 강의에서 학습한 내용을 사이드 프로젝트에 적용했는데요! 뭔가... 찝찝하고... 리팩토링을 어떻게 해야할지 잘 모르겠어서요... 당연히 보수는 드릴 예정입니다! 고려해주시면 정말 감사하겠습니다!

  • spring
  • spring-boot
  • dbms/rdbms
  • backend
  • payments
이채림 댓글 1 좋아요 0 조회수 355

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 이벤트는 잘뜨던데 왜 그런걸까요? 감사합니다

  • oracle
  • dbms/rdbms
km9311 댓글 1 좋아요 0 조회수 284

Select for update locking

해결됨

Real MySQL 시즌 1 - Part 1

Select for update 시 lock 을 걸어 원 데이터를 버장힌다는 것은 이해 하였습니다그렇다면 a|b 가 동시 접근 하여 서로 다른 값으로 변경하려는 부분은 없고 동일 프로세스가 두번 진입 할 수 있다고 가정한다면어차피 update 시 xlock이 row에 대하여 획득하니select for update 는 필요없는게 맞다라고 이해를 했습니다이 부분이 맞을까요?

  • mysql
  • dbms/rdbms
  • backend
  • query-tuning
  • mysql-query
Gyeongsu. Seo 댓글 2 좋아요 0 조회수 610

조인실습-04 관련 질문있습니다.

미해결

데이터 분석 SQL Fundamentals

안녕하세요, 유용한 강의 너무 감사합니다. 실습-04에서 category_name = 'Beverages'인 상품 정보를 불러오는 문제에서 결과값이 상이해 질문드립니다. 아래와 같이 조인문을 실행했을 때 결과값이 3행만 나오는데 어떻게 수정해야 할까요? select a . category_name , b . product_id , b . product_name , c . company _name from nw . categories a join nw . products b on a . category_id = b . category_id join nw . suppliers c on b . supplier_id = c . supplier_id where a . category_name = 'Beverages'

  • sql
  • postgresql
  • dbms/rdbms
lyl2305 댓글 2 좋아요 0 조회수 195

코틀린 선택 이유

미해결

견고한 결제 시스템 구축

실습 코드가 코틀린으로 작성해주셨는데 자바가 아닌 코틀린을 선택하신 특별한 이유가 있으신지 궁금합니다!

  • spring
  • spring-boot
  • dbms/rdbms
  • backend
  • payments
ak4686 댓글 1 좋아요 0 조회수 329

초기 세팅

해결됨

SW 개발자를 위한 성능 좋은 SQL 쿼리 작성법

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강의자료의 .sql파일을 실행하려는데 ms sql를 세팅해야하나요? 버전도 알려주시면 감사하겠습니다

  • sql
  • dbms/rdbms
edu02 댓글 1 좋아요 0 조회수 257

백업파일 테이블 생성 오류

미해결

다양한 사례로 익히는 SQL 데이터 분석

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 주신 백업 파일로 같은 버전으로 받아서 데이터베이스에 업로드 했는데 테이블이 생성되지 않습니다. 스키마도요. 아무리 이리저리 해봐도 바뀌지 않아서 방법을 여쭤봅니다

  • sql
  • postgresql
  • dbms/rdbms
  • 퍼포먼스-마케팅
  • 데이터-엔지니어링
ajh7457 댓글 1 좋아요 0 조회수 285

에피소드 21에 궁금한 점이 있어 질문드립니다.

해결됨

Real MySQL 시즌 1 - Part 2

강의 마지막 주의사항 중 아래의 설명이 있었는데요. "참조하는 테이블들의 데이터에는 읽기 잠금(Shared Lock) 이 발생하므로, 잠금경합이 발생할 수 있음" 이 부분에 대한 추가적인 궁금증이 있습니다. 만약 Product 테이블이 100만건이 있고 Order 테이블을 업데이트 하기 위해 Product 테이블과 JOIN 을 거는 상황이라고 했을 때 업데이트 대상이 되는 Order 테이블에 X 락이 걸리는 것 뿐만 아니라, Product 테이블에도 S락이 걸리므로 다른 트랜잭션에서 Product 테이블에 UPDATE 를 하려고 했을때 lock wait timeout 같은 문제가 발생할수있다는 것일까요?

  • mysql
  • dbms/rdbms
  • backend
  • query-tuning
  • mysql-query
황정태 댓글 2 좋아요 0 조회수 280

with as로 정의되는 테이블 질문입니다.

미해결

데이터 분석 SQL Fundamentals

---1번 쿼리(오류) with temp_01 as( select b.order_date from order_items a join orders b on a.order_id = b.order_id group by b.order_date order by b.order_date ) select order_date as ord_date , sum(amount) over (order by order_date) as daily_sum from temp_01 ------------------------------------------------------------------------- ---2번 쿼리(작동) with temp_01 as( select b.order_date , sum(amount) as sum_amount from order_items a join orders b on a.order_id = b.order_id group by b.order_date order by b.order_date ) select order_date as ord_date , sum(sum_amount) over (order by order_date) as daily_sum from temp_01 안녕하세요 선생님. 제가 쿼리를 혼자 작성해보다가 막히는 점이 있어서 질문 드립니다. 쿼리를 다음과 같이 작성했는데 첫 번째 쿼리는 오류가 나고 두 번째 쿼리는 작동했습니다. 두 쿼리의 다른 점은 두 번째 쿼리에서 with 절에 sum(amount) as sum_amount로 amount를 정의한 것입니다. 이전에도 with 절로 temp_01을 종종 정의해서 쿼리를 작성했는데 아직 헷갈립니다. with 절로 temp_01을 만들 때, order_items나 orders에 포함되는 컬럼이라면 굳이 모두 with절의 select에 입력하지 않아도, 그 다음 select 절에 입력해 출력할 수 있다고 생각했습니다. 그래서 1번 쿼리처럼 작성했는데 오류가 나서 헷갈립니다. 읽어주셔서 감사합니다.

  • sql
  • postgresql
  • dbms/rdbms
김혜수 댓글 1 좋아요 0 조회수 165

페이징 쿼리 관련해서 질문드립니다.

해결됨

Real MySQL 시즌 1 - Part 1

현재 spring data jpa query + paging 을 사용하고 있습니다. fun findAllFollowing(followerId: Long, pageable: Pageable): List<SnapProfile> = from(snapProfileFollow) .join(snapProfile).on(snapProfile.id.eq(snapProfileFollow.following.id)) .where(snapProfileFollow.follower.id.eq(followerId)) .orderBy(*snapProfile.orderSpecifiers()) .offset(pageable.offset) .limit(pageable.pageSize.toLong()) .fetch() .map { it.following.toModel() } 이것을 데이터 개수 기반으로 변경하고 싶은데 혹시 이럴 때 변경해보신 경험이 있으실까요?

  • mysql
  • dbms/rdbms
  • backend
  • query-tuning
  • mysql-query
her0807 댓글 1 좋아요 0 조회수 273

(1,2강) char, varchar, text 관련 질문

해결됨

Real MySQL 시즌 1 - Part 1

utf8mb4 char에서도 varchar와 마찬가지로 변경되는 문자열이 할당된 길이를 넘어버리면 레코드를 다른 공간으로 옮겨야하는 것이겠죠? 그렇다면 varchar와 마찬가지로 길이가 자주 변경되는 경우 사용하면 안되겠네요. 맞나요? varchar가 char과 달리 공간을 미리 예약하지 않는다면, varchar(50)에서 50은 무슨 의미인가요? 2강에 나오는 메모리 버퍼 크기에만 영향을 주는 것인가요? varchar 타입의 메모리 버퍼 공간은 어떤식으로 사용되는 것인가요? 예를들어, 메모리 버퍼 공간을 테이블 1개당 1개 만들어서 재활용한다고 하면 varchar(30)는 겨우 (latin기준) 30바이트, varchar(255)는 겨우 255바이트를 사용하니까 메모리 공간 차이가 별로 없을 것 같습니다. 그래서 테이블 1개당 1개만 사용하는 것은 아닐 것 같은데, 가져오는(예상되는?) row갯수만큼 할당해두는 것이려나요? (text 디폴트 관련) 표현식이라는 용어를 처음 들어봤는데요, 표현식이 무엇인가요? 구글에 나이브하게 검색하면 정규표현식만 나오네요. https://dev.mysql.com/doc/refman/8.4/en/expressions.html 이 문서의 expression을 의미하는 것일까요? 'abc'와 ('abc') 사이에 어떤 차이가 있는지 궁금합니다. text는 어떻게 저장되기 때문에 row사이즈 제한에 포함이 안되나요? 혹시 언제나 오프페이지로 저장되는건가요?

  • mysql
  • dbms/rdbms
  • backend
  • query-tuning
  • mysql-query
hoon 댓글 4 좋아요 0 조회수 659

제가 작성한 코드에 왜 오류가 생기는지 잘 모르겠습니다.

미해결

데이터 분석 SQL Fundamentals

with temp_01 as ( select b.product_id, b.category_id , sum(amount) as sum_by_prod from order_items a join products b on a.product_id = b.product_id group by b.product_id, b.category_id ) , temp_02 as ( select product_id, category_id, sum_by_prod , sum(sum_by_prod) over (partition by category_id) as sum_by_cate , row_number() over(partition by category_id order by sum_by_prod) top_prod_ranking from temp_01 ) select * from temp_02 where sum_by_prod >= sum_by_cate*0.05 and top_prod_ranking <= 3 ; 안녕하세요. 위의 코드로 실행시킨 결과, 다음과 같이 출력되었습니다. 12 4 12257.66 234507.26 3 22 5 7122.36 95744.59 3 55 6 17426.40 163022.37 3 14 7 7991.48 99984.57 2 7 7 22044.30 99984.57 3 위의 코드에서 선생님께서 작성하신 코드와 다른 점은 temp_01 생성할 때 group by를 product._id와 category_id, 총 2개로 놓은 것인데요. 선생님이 작성하신 temp_01과 제가 작성한 temp_01를 전체 쿼리에서 떼어와서 각각 실행했을 때 결과는 같았는데, 전체 쿼리에서는 왜 결과가 달라졌는지 궁금합니다. 감사합니다.

  • sql
  • postgresql
  • dbms/rdbms
김혜수 댓글 1 좋아요 0 조회수 191

커버링 인덱스 질문 드립니다

해결됨

Real MySQL 시즌 1 - Part 1

안녕하세요! 페이징 쿼리 관련해서 질문 좀 드립니다 방명록(사진) 목록을 조회하는 페이징 쿼리에서 테이블에 soft delete(deleted_at), 공개 여부(is_private) column이 있어서 post.deleted_at is null and post.is_private is false 조건이 자주 들어가는데 커버링 인덱스를 위해 해당 column을 인덱스에 추가하는 것은 어떻게 생각하시나요?

  • mysql
  • dbms/rdbms
  • backend
  • query-tuning
  • mysql-query
code-tree 댓글 2 좋아요 1 조회수 429

설치 오류 질문드립니다.

해결됨

비전공자의 전공자 따라잡기 - 데이터베이스,SQL

남겨주신 링크로 다운해봤고 직접 들어가서도 다운해봤는데 저 상태에서 그냥 꺼지고 인스톨러가 실행이 안되는데 뭐가 문제일까요? 도움주시면 감사하겠습니다.

  • sql
  • mysql
  • dbms/rdbms
  • mysql-workbench
minjun 댓글 1 좋아요 0 조회수 276

인기 태그

인프런 TOP Writers

주간 인기글