UpdateV2 및 호출 최적화 관련 질문

  • 뒤끝 SDK 버전 : 5.11.8
  • 프로젝트명 : Legend of blacksmith
  • 스테이터스 코드 :
  • 에러 코드 :
  • 에러 메시지 :

안녕하세요 뒤끝 서버를 통해 게임 개발에 도전하고 있는 개발자 입니다
현재 서버 호출 최적화 작업 중 발생한 궁금한 점을 문의 드립니다

질문1 : UpdateV2 수정 컬럼 개수

UpdateV2 기능을 통해 유저의 게임 정보를 업데이트 하고 있는데 혹시 UpdateV2를 사용할 때 같은 테이블에서 10개의 컬럼을 수정 할 때와 1개의 컬럼을 수정 할 때 서버에 호출되는 양이 다를까요?

질문2 : 게임 정보 제이슨 데이터로 저장

게임에 있는 수십 또는 수백개가 될 수 있는 유저 데이터(변수)를 테이블에 하나씩 컬럼으로 등록한는것 보다는 특정 변수들끼리 묶어서 제이슨 데이터로 테이블에 저장하는게 호출 비용 측면으로 봤을 때 더 효율적인 방법일까요?

안녕하세요 개발자님,
문의하신 내용 순차적으로 답변드립니다.

  1. UpdateV2 수정 컬럼 개수
    UpdateV2 함수 요청에 따라 컬럼을 수정할 때, 수정되는 컬럼의 수와 관계없이 1회의 호출량이 발생하며,
    해당 컬럼이 아닌 row 전체 크기를 기준으로 DB 처리량이 발생합니다.
    삽입,조회,수정 모두 특정 컬럼이 아닌 row 전체 크기 기준으로 DB 처리량이 발생하는 점 참고 바랍니다.

  2. 게임 정보 제이슨 데이터로 저장
    저장되는 데이터의 값이나, 종류 등 그 정보에 따라 운영적인 면에서 효율적인 방법은 달라질 수 있습니다.

    1. 수십 수백개의 유저 데이터를 컬럼 하나하나에 저장
      ex> Gold 컬럼에 0, GoldKey 컬럼에 2, Dia 컬럼에 500, Silverkey 컬럼에 5 저장
    2. 하나의 컬럼에 Json 데이터로 저장
      ex> data 컬럼에 아래와 같이 저장
      {
      "Gold": 10,
      "GoldKey": 2,
      "Dia": 500,
      "Silverkey": 5
      }
      
    3. 하나의 컬럼에 간소화하여 저장
      ex> data 컬럼에 10|2|500|5 로 저장

    위 방법들 모두 저장에 활용할 수 있는 방법으로, 운영상의 편의성 등을 고려하여 적용하여 주시면 됩니다.
    어떠한 경우에 해당하든 row내 전체 데이터의 크기가 커질수록 DB 처리량은 높아지기에,
    테이블의 데이터가 너무 커지지 않도록 하는 것이 더욱 중요합니다.

답변 감사합니다!

그렇다면 UpdateV2로 테이블을 업데이트할 때 param에 들어가는 변경할 컬럼의 개수는 서버 비용에 영향을 끼치지 않고 UpdateV2로 업데이트할 테이블의 크기에 따라 서버 비용이 발생한다는 말씀이신걸까요?

만약 그렇다면 업데이트할 때 현재 유저 데이터가 변경된게 있는지 판단하여 변경된 변수로 param을 구성하는 함수를 생각 중이었는데 필요가 없어질 것 같네요

좋아요 1

네, 맞습니다.
요청하는 param의 수나 크기가 아닌, 조회나 수정을 하는 해당 row 의 전체 크기에 따라 DB 처리량이 발생하게됩니다. :D