DB 최적화 관련 질문입니다.

  1. GetPrivateTableContents 로 한개의 테이블에 있는 20개의 데이터를 불러올 때, 20개의 rows를 가진 제이슨 하나가 되서 오던데요, 그러면 제이슨 파일 하나를 읽기 위해서 1회의 읽기를 수행한건가요? 아니면 20회의 읽기를 수행한걸 json 파일 하나로 합쳐서 전달받는 건가요?

  2. 한개의 테이블에 있는 게임정보를 Backend.GameInfo.Update 로 수정할 때,
    같은 테이블에 있는 컬럼 1개만 수정하는것에 비하여 다수의 컬럼을 수정할 때 데이터 요금이 더 많이 나오나요?

예를들어, Player 테이블에 hp, mp, exp 라는 3개의 능력치가 있다고 하였을 때, hp만 수정하는것과, hp,mp,exp 3개를 동시에 수정 시도 하는것이 데이터 요금에 차이가 있나요? Backend.GameInfo.Update 명령어를 한번 사용한건 같기 때문에 3개의 collum을 수정했어도 1개의 collum을 수정한 것과 차이가 없나요?

안녕하세요 개발자님


1

데이터 읽기 횟수와 관계없이 읽기 처리한 데이터의 크기에 비례하게

읽기를 처리한 것으로 수행됩니다.

20개의 row를 조회하실 때 데이터의 크기가 합쳐서 8kb 미만일 경우 0.5 처리량이 발생하고,

8kb 일 경우 1 일기처리가, 그 이상일 경우 처리한 데이터의 크기에 맞게 읽기 처리가 발생하게 됩니다.


2

1번과 마찬가지로 컬럼의 갯수와 관계 없이 쓰기 작업을 수행한 데이터 크기에 비례하게 쓰기 처리가 발생합니다.


DB 처리량 기준 관련해서는 아래 개발자문서를 참고 부탁드리겠습니다.

감사합니다.

그렇군요…
저는 1kb 짜리 테이블을 10분 동안 1분에 한번씩 10번 불러오게되면,
1번당 0.5회의 처리가 발생하여 0.5 * 10 = 5회 로 처리되는걸로 생각하고 있었습니다.
이게 아니고 다 합산하여 10kb니까 1.5회로 처리되는건가요?

정리해서 말씀드리면

1번의 호출에 여러개의 row가 포함되는 것은 데이터 양을 기반으로 읽기/쓰기 량이 계산됩니다.

만약 10번의 호출이 있으면 각각 개별로 읽기/쓰기 량이 계산됩니다.

아래 예제를 참고해주세요.

example

10kb의 데이터를 1번의 호출로 요청함
=> 1 + 0.5 = 1.5 회 처리

1kb의 데이터를 10번 호출로 요청함
=> 0.5 * 10 = 5회 처리

1 Like

아 이제 이해가 가네요.
감사합니다.