묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결견고한 결제 시스템 구축
payment 상태 업데이트 변경 메서드를 3개나 두는 이유가 궁금합니다.
강의 30분 40초에 보시면 success, failure, unknown 이렇게 상태를 변경하면서 메서드를 3개나 두시는데 이유가 궁금합니다. 만약 jpa나 querydsl을 사용한다면 코드가 달라질까요?
-
미해결비전공자도 이해할 수 있는 MySQL 성능 최적화 입문/실전 (SQL 튜닝편)
jpa쿼리튜닝 팁이 궁금합니다.!
안녕하세요 강의 잘 듣고 있습니다!jpa를 사용해서 프로젝트를 진행하면 쿼리 메서드를 사용할텐데 select * <- 이걸로 넓은 범위를 조회할텐데jpql로 다 작성해주어야 하나요?jpa로 프로젝트 진행할때 팁이나 검색 키워드 추천해주세요!
-
미해결[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]
Join 구문에서 메인 테이블
SELECT provider FROM items JOIN ranking on ranking.item_code = items.item_code 여기서 items 위치를 메인 테이블ranking 위치를 서브 테이블이라고 칭할게요! 메인테이블과 서브테이블을 어떤걸로 해야할지 항상 헷갈려요기본적으로 보고 싶은 컬럼인 provider가 원래 속한 테이블을 메인에 두려고는 하는데 예제 풀어주시는 걸 보면 아닌 경우도 있어서요! 어차피 테이블을 조인하는거니까 하나의 테이블이 되면 뭐가 메인이 되어도 상관이 없지않나 싶은데..메인 테이블 지정하는 기준이 있나요??
-
미해결[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]
예제문제 추가 쿼리 질문
안녕하세요 공부하다가 쿼리에 추가해보고 싶은게 생겨서 질문드립니다!예2: 서브카테코리가 '여성신발'인 상품중 할인가격이 가장 높은 상품의 할인가격 가져오기이 문제에 정석 답변이라면 MAX(dis_price) 컬럼만 도출될텐데요! 앞에다가 해당 상품명 title을 추가해서 총 두 개의 컬럼이 나오게끔 만들어보려다가 막혀서 질문드립니다.원래는 99000짜리 하나만 나와야하는데밑에 쿼리로 하니까 여러개가 나와서요 ㅠㅠ 여러개가 나온 이유는 알거같아요 타이틀을 그룹바이해서 그 그룹별로 제일 높은 가격이 도출된 것 같은데 그건 제가 원하는 답은 아니어서요! 맥스 디스 프라이스를 가진 아이템코드의 타이틀을 어떻게 해야 효과적으로 도출할 수 있나요?SELECT title, MAX(dis_price) FROM items JOIN ranking on items.item_code = ranking.item_code WHERE sub_category = "여성신발" group by title;
-
해결됨장래쌤과 함께하는 쉽고 재미있는 SQL 이야기
주차별 데이터에서 전 주 데이터 가져오기
안녕하세요, 질문드립니다! week. date. 값31 2024-08-02 A31 2024-08-03 A32 2024-08-07 B32 2024-08-08 C 위와 같이 주차별로 쌓여있는 테이블에서 현재 주차가 32주차라고 가정하면32주차의 값을 가져오는게 아니라 저번주 차의 값을 가져오고싶습니다. 원래 대로라면 32주차 (B 값 1개) 가 분모가 되겠지만31주차 (A 값 2개) 로 가져오고 싶습니다ㅠ 방법이 있을까요
-
해결됨Real MySQL 시즌 1 - Part 1
char vs varchar 타입에 궁금한 점이 있습니다.
varchar 타입의 경우 데이터 업데이트시 파편화가 생길 수 있다는 점을 이해했습니다! 다만, char 타입을 쓰면 좋은 경우가 문자열의 길이가 가변성이 크지 않은 경우라고 한다면varchar의 경우에도 길이 가변성이 크지 않은 탓에 처음부터 선언해둔 길이를 벗어나지 않을 가능성이 클 거 같다는 생각이 들었습니다. 만약 주민등록번호라고 한다면 13자리니까char(13)로 하거나 varchar(13)해도 이 자리수를 넘어가지 않을 것이고자주 업데이트 되는 경우라고 해도 char도 그렇고 varchar도 그렇고 길이수만 잘 잡아놓으면fragmenation 문제가 없는 것이 아닌지 궁금합니다. 그럼에도 char를 쓰는 것이 더 좋은 이유가 있을지 궁금해서 질문남깁니다!
-
미해결비전공자도 이해할 수 있는 MySQL 성능 최적화 입문/실전 (SQL 튜닝편)
특정 부서에서 최대 연봉을 가진 사용자 조회 sql 쿼리 질문
안녕하세요, 좋은 강의 감사합니다. 제공해 주신 쿼리에 대해 질문이 있는데요,제 생각에는 아래 쿼리가 특정 부서에서 최대 연봉을 가진 사용자를 조회하는게 아닌,전체 부서에서 최대 연봉이 x 라고 하면,세 부서에서 그 값이 있으면 출력하는 문인것 같은데,제가 어느 부분에서 헷갈린 건지 알려주시면 감사하겠습니다.SELECT * FROM users WHERE salary = (SELECT MAX(salary) FROM users) AND department IN ('Sales', 'Marketing', 'IT'); SELECT MAX(salary) FROM users 는 users 테이블의 최대 salary 를 가져오는것이고,괄호 밖의 department In (...) 은 부서 세개,그리고 salary = (SELECT MAX ...) 와 함께 저 salary 에 해당 하는 users 가져오는 것이 아닌가요? 제가 sql 초보라 양해 해주시면 감사하겠습니다 ...
-
해결됨비전공자도 이해할 수 있는 MySQL 성능 최적화 입문/실전 (SQL 튜닝편)
created_at 에 index 거는것과 지속적인 데이터 증가
안녕하세요, 좋은 강의 감사합니다. created_at 에 index 를 걸어서 order by 와 같은 문제를 해결하는 것을 보았는데요, 데이터가 지속적으로 증가하고 밀리초 단위로 들어오는 created_at 이 있다면, 이것들을 모두 다 인덱스로 걸어도 괜찮은건가요?? 데이터가 계속 커지면 어떻게 처리하나요??
-
미해결비전공자도 이해할 수 있는 MySQL 성능 최적화 입문/실전 (SQL 튜닝편)
WHERE A OR B 에서 인덱스 걸기
안녕하세요, 좋은 강의 제공해 주셔서 감사합니다.[실습] WHERE문에 인덱스를 걸기 vs ORDER BY문에 인덱스를 걸기 강의 에서 질문이 있습니다. 만일 created_at 과 department 가 AND 가 아닌 OR 조건이 주어지면, 데이터 엑세스가 더 많은것에 인덱스를 거는것이 좋을까요?? SELECT * FROM users WHERE created_at >= DATE_SUB(NOW(), INTERVAL 3 DAY) OR department = 'Sales' -- AND 대신 OR ORDER BY salary LIMIT 100;
-
미해결[리뉴얼] 처음하는 MongoDB(몽고DB) 와 NoSQL(빅데이터) 데이터베이스 부트캠프 [입문부터 활용까지] (업데이트)
어그리게이션 프레임웍 질문
안녕하세요 샤드별 병렬조회는 어그리게이션 프레임 웍에서만 지원하는건가요? 프레임웍 장점부분에서 해당부분을 말씀하셔서 궁금증에 질문드립니다 - 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다)- 이외의 문의등은 평생강의이므로 양해를 부탁드립니다- 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결비전공자도 이해할 수 있는 MySQL 성능 최적화 입문/실전 (SQL 튜닝편)
질문이있습니다.
제가 선생님 강의를보고테이블에 천만개의 데이터를 넣고 인덱스를 테스트하고있었는데요, 2가지 질문이 생겼습니다. 질문다음과 같이 익스플레인 에널라이즈를 하면 소요시간이 약 704ms 으로 나옵니다. 그런데 익스플레인 에널라이즈만 제거하고 다시 셀렉트를 하면 소요시간이 1.494로 증가하는데 단순 조회 쿼리와 익스플레인 에널라이즈 쿼리가 서로 다르게 동작해서 그런건가요? 분석때문에 에널라이즈쪽이 더 오래걸릴까 싶었는데 오히려 반대라서 왜 이런현상이 발생하는지 궁금합니다.-> Filter: ((reservation.userId = 389788) or (reservation.seatId = 50)) (cost=11192 rows=10272) (actual time=2.33..678 rows=10271 loops=1) -> Deduplicate rows sorted by row ID (cost=11192 rows=10272) (actual time=2.3..676 rows=10271 loops=1) -> Index range scan on reservation using idx_user over (userId = 389788) (cost=1.11 rows=1) (actual time=0.115..0.115 rows=0 loops=1) -> Index range scan on reservation using idx_seat over (seatId = 50) (cost=1038 rows=10271) (actual time=0.0497..2.77 rows=10271 loops=1) 질문제가 다음과 같은 쿼리에 인덱스를 걸며 테스트해보니복합인덱스 ( userId,seatId or reverse ) 는 전혀 인덱스를 활용하지않고 단일 인덱스를 각각 지정했을 경우에만 아래와같이 인덱스를 병합해서 사용하더라구요. 이렇게 속도를 절반으로 떨어뜨렸는데 아무래도 데이터가 천만개라 그런가 여전히 1초 이상의 시간이 소요되어서 선생님이 보셨을때 여기서 더 개선해볼 방법이 있는지 궁금합니다.where쪽을 건드려 보자니 둘중 하나라도 충족되면 가져와야하는 상황이라면 or 말고 다른건 떠오르질않았습니다.(에널라이즈는 시간이 1초 미만으로 나오지만 실제로 쿼리 돌려보면 소요시간 1.4초 이상으로 찍힙니다. ) CREATE INDEX idx_user ON reservation_entity(userId); CREATE INDEX idx_seat ON reservation_entity(seatId); SELECT `reservation`.`createdAt` AS `reservation_createdAt`, `reservation`.`updatedAt` AS `reservation_updatedAt`, `reservation`.`deletedAt` AS `reservation_deletedAt`, `reservation`.`id` AS `reservation_id`, `reservation`.`userId` AS `reservation_userId`, `reservation`.`concertId` AS `reservation_concertId`, `reservation`.`seatId` AS `reservation_seatId`, `reservation`.`status` AS `reservation_status`, `reservation`.`price` AS `reservation_price`, `reservation`.`concertName` AS `reservation_concertName`, `reservation`.`seatNumber` AS `reservation_seatNumber`, `reservation`.`openAt` AS `reservation_openAt`, `reservation`.`closeAt` AS `reservation_closeAt` FROM `reservation_entity` `reservation` WHERE `reservation`.`userId` = 389788 OR `reservation`.`seatId` = 50; -> Filter: ((reservation.userId = 389788) or (reservation.seatId = 50)) (cost=11192 rows=10272) (actual time=2.33..678 rows=10271 loops=1) -> Deduplicate rows sorted by row ID (cost=11192 rows=10272) (actual time=2.3..676 rows=10271 loops=1) -> Index range scan on reservation using idx_user over (userId = 389788) (cost=1.11 rows=1) (actual time=0.115..0.115 rows=0 loops=1) -> Index range scan on reservation using idx_seat over (seatId = 50) (cost=1038 rows=10271) (actual time=0.0497..2.77 rows=10271 loops=1)
-
미해결[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]
강의 화면 출력이 되지 않는 현상
강의 화면이 제가 들었던 기록들을 제외하고는 음성만 들리고 영상이 보이지가 않습니다. 혹시 해결방안 있을까요?
-
미해결비전공자도 이해할 수 있는 MySQL 성능 최적화 입문/실전 (SQL 튜닝편)
테이블에 기본키가 없을때
강의를 듣다 궁금한 점이 생겨서 글을 남김니다.보통 테이블을 생성할때 당연하게 pk를 지정해 주었는데 pk가 없는 테이블도 생성을 하나요? 생성은 되는것 같은데 똑같이 테스트를 해보니 따로 정렬한는 기준이 없어서 그런지 id 7번을 2번으로 바꿔도 들어온 순서대로 위치가 맨 마지막에 있는것을 확인했습니다. pk가 없는 테이블도 있는지 있으면 성능이라던지 차이점이 뭔지 궁금합니다.
-
미해결비전공자도 이해할 수 있는 MySQL 성능 최적화 입문/실전 (SQL 튜닝편)
질문있어요!!!
인덱스를 생성할때, 오름차순 - 내림차순도 설정할수있는데,날짜 기준으로 '최신 날짜 기준'으로 자주 조회하는 쿼리일 때,인덱스를 날짜 기준으로 내림차순으로 만들면 쿼리에 더 효과가 있는 걸까요?아니면 정렬 설정 상관없이 '옵티마이저'가 알아서 판단해서 조회를 하는 건가요?? 그리고강의 너무 유익하게 듣고있습니다. 늘 좋은 강의 감사합니다
-
해결됨장래쌤과 함께하는 쉽고 재미있는 SQL 이야기
여러 컬럼 중 null값이 아닌 값 가져오기
안녕하세요 질문 드립니다! A 1 2 3 null 5 null null null 7 이렇게 A라는 항목에 한해서 9개의 컬럼이 있는데 중간 중간 null 값이 있는 경우 이전 값들 중 최근 값을 가져오게끔 하는 방법이 있을까요? 위 예시로, 빨간색 null 값은 3이 나와야되고 7 전의 null 값 3개에 대해서는 5, 5, 5 이렇게 나오게끔 하고싶습니다
-
해결됨장래쌤과 함께하는 쉽고 재미있는 SQL 이야기
누적 백분위 구하기 질문
선생님 안녕하세요 쿼리로 누적 백분위 구하려고하는데 질문드립니다 A 10B 20C 30D 40E 50Sum: 150이렇게 있을때 상위 10%, 20%, 30% .. 등등에 속하는 개수는 몇개인지 구하려하는데요 예를 들어 150의 10%인 15를 만족하는 갯수는 전체 중 1개( A = 10) 20%인 30 을 만족하는 갯수는 전체 중 2개 (A와 B) 전체 중 100%는 5개 (A, B, C, D, E) 이런식으로 누적 백분위를 구하고싶은데 이렇게도 가능할까요? 그럼 A+B 값이 10% 에 드는지 20%에 드는지 A+B+C 값은 몇프로에 드는지 각각 case when을 써서 비교해보려고했는데 누적 합산을 A+B, A+B+C 이렇게 끊어서 비교하는 방법을 모르겠습니다
-
미해결데이터베이스 중급(Modeling)
M:N관계 강의에서 말씀하신 표현
25:28 시간에"FK와 FK를 끄집어내고 테이블명을 끄집어 내면그 테이블은 해석이 되야지 잘 설계된 것이다"위 말씀의 의미를 좀 더 자세히 알 수 있을까요?
-
미해결데이터베이스 중급(Modeling)
릴레이션 개념
안녕하세요. 선생님용어를 습득하는데 별 탈없이 공부를 하던 중'릴레이션'이라는 용어를 마주하게 됐습니다.행 (row, tuple, record, instance) 여러 단어로 표현이 되듯릴레이션도 테이블(엔티티, 릴레이션) 이라고 표현하는 것 같습니다.(확실하진 않습니다ㅎㅎ)궁금한 점은 1:M, M:N, 1:1 관계를 배울 때 관계라는 영어명이 릴레이션이기 떄문에 용어가 좀 중구난방이라는 생각이 드는데 저만 이런 걸까요ㅎㅎ;;
-
미해결견고한 결제 시스템 구축
'더 견고해지기 위해 남은 작업' 수업자료
안녕하세요.다운로드한 수업자료에 '더 견고해지기 위해 남은 작업' 과 관련된 pdf 파일이 존재하지 않습니다 ㅠㅠ다른 질문글을 봤을땐 notion URL 를 제공했다고 하는데, 혹시 notion URL를 안내해주는 챕터가 어디일까요?더이상 Notion URL을 제공하지 않는다면 강의자료에 첨부해주실 수 있을까요?강의 잘 들었습니다. 감사합니다!
-
해결됨SW 개발자를 위한 성능 좋은 SQL 쿼리 작성법
13:57 쿼리실행화면 차이점
13:57 쯤에 나오는 쿼리 실행 화면이 강사님 화면과 좀 다른데 특별한 이유가 있을까요?차이점LEFT / RIGHT JOIN SORT