DB 요금 관련해서 문의사항이 있습니다.

  • 프로젝트명 : com.stbcompany.tatsteofpower
  • 뒤끝SDK 버전 : 5. 4. 5
  • 에러 코드 :

DB 데이터 비용 관련해서 궁금한게 있습니다.

길드 메타정보에 길드 업무 정보를 넣어놓고 진행하려고 하고 있는데, 저장된 내용이 좀 커서 걱정이 됩니다.

근데 비용 책정이 얼마나 되는지 알기가 좀 어렵네요.

  1. 일반적으로 한번 저장할때, 몇개의 Data를 저장하는게 비용적으로 효율적인가요?

  2. 같은 수의 Data를 저장할때,
    List나 Class 형태로 들어가면 각 컬럼으로 들어가는거보다 비용이 더 들어가나요?

  3. 그리고 컬럼의 수가 많은 Row에서 하나의 컬럼만 수정하려고 컬럼의 수가 적은 Row 보다
    처리 데이터가 커지나요?

  4. Update(수정)에 경우, 어떤 로직으로 되는지 궁금합니다. 읽고, 수정한다고 하는데,
    하나의 컬럼만 바꿀 경우, row를 읽는 비용 + 하나의 컬럼 수정 비용이 들어가는지
    아니면 row를 읽는 비용 + row 전체를 수정하는 비용이 들어가는지

출시 전에 이런 비용을 확인해볼 수 있는 방법이 있었으면 좋겠습니다.

안녕하세요 개발자님,
길드 정보를 업데이트 할 경우, Param에 들어가 있는 값으로 덮어쓰기가 되므로 길드 메타정보를 업데이트 할 경우에는 기존 메타정보를 받고 그 데이터에 변경되는 데이터를 넣어 다시 삽입해야 합니다.

그러므로 변경되는 값이 숫자형일 경우에는 굿즈 이용을 권장드리며 메타정보를 업데이트하려는 유저가 많을 경우 변경이 정상적으로 작동하기 어려워질 수 있으니, 가급적 자주 변경하는 것은 자제해주시고 읽기 위주로 사용해주시면 감사하겠습니다.

  1. 게임마다 저장방식이 다르고 데이터를 구성하는 방식도 다르기 때문에 명쾌한 답변드리기는 어려울 것 같습니다.
    다만 적게 데이터를 수정할수록 비용이 적게 생기므로, 한 row를 통째로 업데이트하는 것 보다는 변경된 부분만 수정하는 것을 권장하고 있습니다.

  2. 두 방법 모두 큰 차이는 없습니다. 하지만 List로 모든 데이터를 집어넣으려고 할 경우 List 내에 한 데이터가 변경될 때마다 List 모두 변경을 해야하므로 DB요금이 많이 발생할 수 있습니다.
    또한 생성 가능한 컬럼의 최대치는 290개로 아이템 같은 종류의 개수를 예측하기 힘든 데이터는 컬럼보다는 List로 구현하셔야 합니다.

  3. 게임정보를 업데이트 하기 전에 자동으로 읽기 작업이 한번 수행됩니다. 업데이트 하려는 row의 데이터가 크다면 읽기 시의 데이터가 작은 데이터의 row보다 많이 발생하게 됩니다.

  4. 1번과 3번을 종합하여 업데이트 시에는 읽기 + 쓰기가 발생하게 되는데, 수정하려는 row의 데이터가 클 경우 읽기 요금은 많이 발생하게 되지만 쓰기 요금은 Param값에 넣은 데이터만 사용되기 때문에 적게 업데이트할수록 적은 양의 쓰기 요금이 발생합니다.
    그러므로 업데이트 시에는 row를 읽는 비용 + 하나의 컬럼 수정 비용이 들어갑니다.

데이터의 크기는 직접 삽입하려는 데이터의 크기를 구하시거나 혹은 뒤끝 콘솔 관리에서 확인하실 수 있습니다

데이터의 크기를 확인하는 방법은 아래와 같은 로직으로 구현하실 수 있습니다.

Param param = new Param();
string paramToString = JsonConvert.SerializeObject(param.GetValue());
int count = System.Text.Encoding.Default.GetByteCount(paramToString);
Debug.Log("param의 크기(byte) : " + count);

콘솔에서 확인하자 하는 경우에는 아래와 같은 방법으로 확인하실 수 있습니다
DB 사용량의 경우, 뒤끝 콘솔의 우측 상단 프로필 클릭 > 현재요금 > 프로젝트 선택 > DB요금 클릭을 통해 전체 사용량만 확인하실 수 있습니다.
구체적인 확인을 원하실 경우, 빈 프로젝트에 DB수정 요청을 보낸 후, 빈프로젝트의 DB요금창에서 변화되는 DB사용량을 체크하는 방법 등을 이용해주시면 감사하겠습니다.

좋아요 2

답변 감사합니다. 도움이 많이 되네요.

길드 굿즈를 이용할 랭킹 사용에서 랭킹 초기화가 진행된 후에,

각 길드원들이 기부한 양도 초기화가 되나요?

안되는걸로 알고 있어서, 각 길드원들이 얼마나 기부했는지 표현할 수가 없어서 길드 메타정보를 이용해서 구현하고 있습니다.

여력이 된다면 굿즈 랭킹 초기화시, 길드원들의 굿즈 기부 내역도 초기화할 수 있도록 방향으로

진행되길 간절히 바랍니당…

길드 굿즈 랭킹 초기화 시에는,
길드원의 굿즈 기부 내역 또한 초기화가 이루어집니다.
참고하여 이용해 주세요. :)

좋아요 1