묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨SW 개발자를 위한 성능 좋은 SQL 쿼리 작성법
불필요한 컬럼 참조에서 궁금한 게 있습니다.
사실 저는 인덱스를 잘 아는 편은 아닙니다. 인덱스의 개념만 알뿐 데이터베이스 설계를 하면서 인덱스도 생성하는 건 아직 못해본 학생입니다. 그런 전제를 깔고 질문을 드려서 질문 자체 수준이나 왜 물어보는지 이해가 안 되실 수도 있지만 혹시 답변을 받을 수 있을까해서 질문남깁니다. select orderID from dbo.Orders 와 select orderID, OrderDate FROM dbo.Orders 에서 아래 테이블은 어떠한 이유로 불필요한 컬럼인지 잘 모르겠습니다. orderID 컬럼에 대해서 인덱스가 이미 생성되어 있고 orderDate는 인덱스로 생성되어있지 않은 컬럼이라 orderid만 조회하면 인덱스를 조회하면 되는데 orderDate까지 조회하는 걸로 작성해서 괜히 인덱스는 쓰지도 못하고 테이블을 훑어서 조회하니까 문제라는 말씀이신가요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part5: 데이터베이스
DB 사용 질문입니다
안녕하세요~ 유니티 초보입니다,, 유니티 기초 학습하고 있는데 DB를 mysql이나 mariadb에 연동해서 사용하면 ms-sql과는 많이 다르겠죠? 인터넷 홈페이지에서 mariadb를 DB로 사용할 생각인데 기왕 사용하는거 홈페이지랑 게임 둘다 같은 DB로 제작해보고 싶어서 시도해볼까 하는데 유니티에 mariadb(또는 mysql) 연동해서 사용하는거 괜찮을까요? 오라클 프리티어 웹서버에 mariadb는 설치는 해놓았는데 DB는 아예 모릅니당,, 유니티, 웹서버, DB 다 쌩초보 수준인데... 일단은 영상 보면서 ms-sql로 따라해보고 mysql로 따로 해봐야할지,, 인터넷에 정보도 많이 없는거 같아서요 주저리주저리 적었네요,, 정리 유니티에 mariadb(혹은 mysql) 왕초보자가 연동하여 사용하는거 어떻게 생각하시는지 궁금합니당,, PS. 파이어베이스 db도 괜찮다는거 같은데 위에거 대신 이거 사용은 어떨지 여쭈어봅니당,, 감사합니다~
-
해결됨SW 개발자를 위한 성능 좋은 SQL 쿼리 작성법
쿼리 비용
안녕하세요. 강의 잘 듣고 있습니다. 쿼리 실행해서 실행계획을 보면 쿼리비용 : N% 이렇게 나온는데, 쿼리비용이 무엇인지 궁금합니다. 또 이 숫자가 낮을 수록 좋은 것인지도 궁금합니다. 감사합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part5: 데이터베이스
레디스의 쓰임
안녕하세요 설명중에 1 . RDBMS 보다 NOSQL(레디스)가 빅데이터에 처리가 적합하다. 2. 레디스는 하드에 저장안하고 IN MEMORY 방식으로 메모리에 자료가 남는다 (실시간 랭킹 처럼 사소한 것을 담는다) 라고 하셨는데 두 설명이 상충처럼 느껴져서요 빅데이터를 인메모리에 담는 것처럼 이해가 되 조금 헷갈리는데요 정리 한번만 더 주시면 이해에 도움이 될 것 같습니다. 도움 부탁드립니다.
-
해결됨SW 개발자를 위한 성능 좋은 SQL 쿼리 작성법
SQL Server Admin & 트러블슈팅 강의도 있으면 좋겠습니다.
유명하신 분의 강의를 들으니 아주 좋네요. SQl Server 의 관리자로서, Advanded Admin 및 트러블슈팅 사례나 조치 방법 같은 것들도 나중에 강의 만들어주시면 좋을 것 같습니다. 저는 기존에는 udemy.com 에서 듣고는 있는데 인프런에서 강의를 만드시면 꼭 수강할 예정입니다.
-
미해결[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]
큰따옴표 질문입니다.
강의 13:23 import pymysql db = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='funcoding', db='ecommerce', charset='utf8') cursor = db.cursor() for index in range(10): product_code = 215673140 + index + 1 sql = """INSERT INTO product VALUES( '""" + str(product_code) + """', '스위트바니 여름신상5900원~롱원피스티셔츠/긴팔/반팔', 23000, 6900, 70, 'F'); """ print (sql) cursor.execute(sql) db.commit() db.close() -------------------------------------- 13:23 에서 '""" + str(product_code) + """', '스위트바니 여름신상5900원~롱원피스티셔츠/긴팔/반팔', 23000, 6900, 70, 'F'); """ '""" + str(product_code) + """' 이부분에서 str로 이미 문자열이 되었는데 큰따움표 쓰는거랑 작은따움표를 왜 추가하신건지 궁금합니다. 그냥 'str(product_code)' 로 쓰면 안되나요?
-
해결됨SW 개발자를 위한 성능 좋은 SQL 쿼리 작성법
[섹션 2. 쿼리 금기사항]의[조건절 상수화 이슈]의 데모실행불가 및 결과차이 문의입니다.
안녕하십니까. 강의를 듣고 있는 수강생입니다. 현재 [섹션 2. 쿼리 금기사항]의[조건절 상수화 이슈]의 데모실행 중 [2) Index열 조건에 사용자 정의 함수]를 기동 중에 OPTION 실행이 불가한 문제와 OPTION을 실행하지 않을 시의 실행계획이 다른 문제가 발생하여 궁금해서 연락 드렸습니다. 이하 옵션 실행 불가 화면의 캡쳐입니다. 이하 옵션을 실행하지 않고 쿼리만 실행 했을 시에 발생하는 실행계획 내용입니다. 혹시 해당문제의 발생이유를 알 수 있을지 확인 부탁드립니다. 이상입니다.
-
해결됨SW 개발자를 위한 성능 좋은 SQL 쿼리 작성법
데모DB와 스크립트파일은 어디에 있을까요?
안녕하세요 데모DB와 스크립트파일이 어디있는지 못찾겠는데 해당 링크나 위치 알 수있을까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part5: 데이터베이스
쿼리문 순서 질문
안녕하세요 강사님. 좀 쓸데없는 질문이긴 한데 쿼리문 실행 흐름이 대략 FROM WHERE GROUP BY HAVING SELECT ORDER BY 이런 식으로 실행된다고 배웠습니다. 그런데 SELECT TOP 1 * FROM batting WHERE teamID = 'BOS' ORDER BY HR DESC; --보스턴 팀 소속으로 단일 년도 최다 홈런을 친 사람의 정보 해당 쿼리문에서 ORDER 보다 SELECT가 먼저 실행된다면 아직 홈런 횟수를 내림차순 하기 이전의 테이블에서 최상단의 행을 가져오기 때문에 원래라면 의도하는 결과가 나오지 않는 것이 아닌지 궁금합니다. 감사합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part5: 데이터베이스
단일년도 최다 홈런!!
안녕하십니까 교수님.. 와 이게 안되네요... 최다 홈런친 사람을 파악하는 건데... 직관적으로 명령어를 입력하고 실행을 누르는데 컴퓨터가 불평을 합니다. 어디가 문제일까요? '될듯안될듯 될거 같은 너'입니다. select playerID from batting where (teamID= 'BOS' AND MAX(HR))
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part5: 데이터베이스
SELECT *에 관해서
안녕하세요. 복습을 하는 중에 궁금한 것이 있어서 다시 한번 문의 드립니다. 열의 이름을 바꿀때 이런식으로 하잖아요. 그런데 저는 SELECT birthYear AS birth FROM players 모든 열을 본 상태에서 birthYear만 birth로 바꾸고 싶은데요. 이때는 어떻게 하나요 ? - 이런식으로는 안되더라고요.. SELECT *,birthYear AS birth FROM players
-
미해결Oracle SQL 입문자를 위한 강의
더미 데이터 생성파일 현재 수정본 없을까요???
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 더미 데이터 파일을 실행하면 위 사진 같은것도 뜨기도 하고 테이블 생성시 일일히 ' 도 제거해 주어야 하고 영상에서 말씀하셨듯이 디비마다 sql 문이 조금씩 차이가 있다는 말씀에 maria 디비를 경험해 본적도 없고 어디서 오라클과 다른 부분 오류를 수정해야 되는지 현재로서 알수가 없네요 일일히 파일을 수정하고 강의를 시청하는데 무리가 있다 느껴지고 있습니다. 수정본 파일좀 없을까요???
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part5: 데이터베이스
검색? 논리적읽기? 횟수
안녕하세요. 뒤늦은 질문일지도 모르지만 일단 질문드려봅니다 ㅜ 1) TestOrders에 NONCLUSTERED INDEX를 하나 만들고 CustomerID = 'QUICK';를 검색할때 하나의 Leaf Page에 QUICK들이 모두 모여있어서 한 페이지만 찾으면되는데, 그렇다고 해도 28개의 QUICK을 찾으려면 최소한 28번은 읽어야 하는게 아닌가요? 오히려 WITH(INDEX(Orders_Index01))를 사용한 경우는 SEEK으로 'QUICK'모음을 찾고 그걸 하나씩 검사하기 때문에 논리적읽기가 30인건 어느정도 이해하겠는데 SCAN으로 한 경우는 왜 20일까요? 2) 예를들어 100개의 데이터중 A라는 데이터가 5개 있고 name으로 검색 가능하다고 했을때 C#의 리스트에서 검색을 할때는 A가 몇개인지는 결국 100개를 다 돌려봐야 하는데 (INDEX를 사용하지 않은)SQL에서는 왜 논리적읽기가 100이 아닌가요? 전체를 순회하는건 스캔1에 포함이 되는건가요?
-
해결됨Oracle SQL 입문자를 위한 강의
dummydata파일 수정본으로 올려주실 수 있나요?
안녕하세요 강사님, 더미데이터파일 수정본으로 새로 올려주실 수 있는지 여쭙고 싶습니다. 오라클db와 문법에 차이가 있는 파일이 그대로 업로드 되어 있는게 당황스러워요. 웬만하면 강의 영상으로 해결하려 했는데 강사님 하시는 걸 보고 똑같이 따라해도 8행부터 6236행까지 쭉 오류가 뜹니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part5: 데이터베이스
정리하면서 질문입니다.
강의 잘보고 있습니다. Index 부분이 중요하다고 하셨는데 조금 헷갈리네요;; 1) SELECT * FROM sys.indexes WHERE object_id = object_id('accounts'); 의 결과 중 index_id 가 (0 = HEAP) (1 = CLUSTERED) (2 <= NONCLUSTERED) 인것같고 CLUSTERED INDEX를 사용하면 (0 = HEAP)대신 (1 = CLUSTERED) NON CLUSTERED INDEX라면 (1 = CLUSTERED)대신 (0 = HEAP)가 사용되는 것 같습니다. 2) DBCC IND('GameDB', 'accounts', N); N에 index_id를 넣어주게 되는데 CLUSTERED INDEX를 사용하여 index_id가 1부터 시작하게 되었을때도 0을 넣었을때 실행이 됩니다. 반대로 NON CLUSTERED INDEX일때 1을 넣어도 실행이 되는데 그냥 조회용인가요? 결과에 의미가 있나요? 3) DBCC IND('GameDB', 'accounts', 0); 실행시 첫 행의 의미는 어떤건가요? 4) NON CLUSTERED ± CLUESTERED INDEX Page Type의 [ 1은 Data Type이니까 RID를 통해 Heap Table에서 직접 값을 가져오기 ] [ 2는 Index Type으로 키를.. 값이.. Leaf에 실제 값들이 있고 그 값들의 키의 범위를 루트가 가지고 있다고 보면 될까요? => CLUSTERED에 실제 값이 있고 그 키를 가진 NONCLUSTERED페이지 ] (CLUSTERED가 있다면 모든 NONCLUSTERED는 CLUSTERED를 참조) 5) 그냥 CLUSTERED INDEX는 값들이 키순으로 정렬되어 사용되구요 6) 실제로 사용할때 한 데이터에서 INDEX를 많이 생성해서 사용하나요? 아니면 목적에 맞는 INDEX만 생성해서 사용하게되나요? 인덱스에 클러스터드에 구조까지 이해하려니까 좀 어려웠지만 일단 생각해보고 이해한거 정리하고 하면서 질문드려봅니다ㅜ
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part5: 데이터베이스
각 연도별 최고의 홈런왕
을 찾아보는데 SELECT * FROM ( SELECT *, ROW_NUMBER() OVER (PARTITION BY yearID ORDER BY HR DESC) AS ranking FROM batting ) AS yearTableWHERE ranking = 1ORDER BY yearID DESC; FROM 이후에 AS로 이름을 지어주지 않으니 오류가 나는데 이름이 꼭 필요한가요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part5: 데이터베이스
데이터가 많을 때 Hash 를 사용?이 이해가 잘 안됩니다
join할 데이터베이스 양쪽 다 데이터가 많다면 Hash도 비용이 많이들어 효율이 낮아지는게 아닌가요? 만약 이럴땐 어떤 조인을 사용해야 할까요? NL을 사용하면 엄청난 비효율일 것 같고 Merge를 사용하기엔 데이터가 너무 많고 이래도 그냥 Hash를 사용하는것이 셋중에서 더 좋은 방법인가요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part5: 데이터베이스
INDEX - 트리 소소질문
INDEX를 설정해 준다는건.. 데이터가 삽입될때 트리가 적당한 위치에 데이터를 저장하고 [ 트리의 루트에서 '왼오왼왼오'의 방향으로 가면 데이터가 있다. ] 라고 말하는 것과 비슷한가요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part5: 데이터베이스
NON-CLUSTERED 를 잘 모르겠습니다
1. CLUSTERED 는 영한 사전처럼 순서대로 저장된다고 하셨는데 그러면 DB에 INSERT 하는 순서대로 저장되는건가요? 2. NON-CLUSTERED 를 사용하는 이유르 정확하게 모르겠습니다. accountName을 NON-CLUSTERED INDEX로 만들었는데 보통 닉네임을 정할때 중복없이 생성하게 되는데 이걸 색인으로 만들면 특정 이름을 찾는데에 모든 플레이어들의 이름을 다 비교하는게 아닌가요? 만약 그렇게 되면 색인을 넣든 안넣든 똑같은게 아닌가요? 예를들어서 플레이어를 찾을 때 [찾고싶은 플레이어 이름 = '플레이어 이름'] 이런식으로 찾는다 했을 때 굳이 색인이 필요한지 색인을 안하고 [찾고싶은 플레이어 이름 = '플레이어 이름'] 이런식으로 찾을 수는 없는건가요? 아니면 색인을 넣어줘야지 위처럼 찾는 기능이 가능한건가요?
-
해결됨갖고노는 MySQL 데이터베이스 by 얄코
궁금한점
오라클의 힌트인 /*+INDEX */ 와 MySQL의 인덱스랑 같은거 인가요?