안녕하세요 개발자님,
길드 정보를 업데이트 할 경우, Param에 들어가 있는 값으로 덮어쓰기가 되므로 길드 메타정보를 업데이트 할 경우에는 기존 메타정보를 받고 그 데이터에 변경되는 데이터를 넣어 다시 삽입해야 합니다.
그러므로 변경되는 값이 숫자형일 경우에는 굿즈 이용을 권장드리며 메타정보를 업데이트하려는 유저가 많을 경우 변경이 정상적으로 작동하기 어려워질 수 있으니, 가급적 자주 변경하는 것은 자제해주시고 읽기 위주로 사용해주시면 감사하겠습니다.
-
게임마다 저장방식이 다르고 데이터를 구성하는 방식도 다르기 때문에 명쾌한 답변드리기는 어려울 것 같습니다.
다만 적게 데이터를 수정할수록 비용이 적게 생기므로, 한 row를 통째로 업데이트하는 것 보다는 변경된 부분만 수정하는 것을 권장하고 있습니다.
-
두 방법 모두 큰 차이는 없습니다. 하지만 List로 모든 데이터를 집어넣으려고 할 경우 List 내에 한 데이터가 변경될 때마다 List 모두 변경을 해야하므로 DB요금이 많이 발생할 수 있습니다.
또한 생성 가능한 컬럼의 최대치는 290개로 아이템 같은 종류의 개수를 예측하기 힘든 데이터는 컬럼보다는 List로 구현하셔야 합니다.
-
게임정보를 업데이트 하기 전에 자동으로 읽기 작업이 한번 수행됩니다. 업데이트 하려는 row의 데이터가 크다면 읽기 시의 데이터가 작은 데이터의 row보다 많이 발생하게 됩니다.
-
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사용량을 체크하는 방법 등을 이용해주시면 감사하겠습니다.