요금 최적화 가이드
DB 읽기/쓰기 요금은 어떤 기준으로 발생하나요?
DB 이용이 발생하는 경우 해당 기능의 DB 이용량(읽기, 쓰기 처리량) + 유저 인증 처리량 (0.5~2 읽기/쓰기 처리량)이 발생합니다. 관련한 보다 자세한 정보는 다음과 같습니다.
- 읽기/쓰기 작업을 수행할 때, 아래 표를 기준으로 처리량이 발생되어 산정되며,
뒤끝 DB에 저장되는 모든 데이터는 인덱스와 인증 정보 등의 추가되어 row 당 약 200 바이트가 증가합니다.
데이터 크기 처리량 읽기 (일반 조회) 4KB 미만
4KB0.5
1쓰기 (일반 쓰기) 1KB 이하 1 읽기 (트랜잭션) 4KB 이하 2 쓰기 (트랜잭션) 1KB 이하 2
- 기능의 종류에 관계없이 모든 호출 시 유저 인증을 실시하고, 이때 0.5 ~ 2의 읽기/쓰기 처리량이 각각 발생합니다.
하나의 테이블에 모든 데이터를 저장해도 괜찮을까요?
운영하시는 게임에 맞게 테이블 설계를 최적화하면 요금 절감이 가능합니다.
- 하나의 테이블에 모든 데이터를 저장하는 구조
캐주얼 게임에서 주로 사용하는 구조로, 하나의 테이블에 모든 정보를 저장하여 관리합니다.
개발이 단순해지는 장점이 있지만, 읽기/쓰기 사용량이 필요 이상으로 많아지기 때문에 유저의 정보가 많아지는 유형의 게임에는 추천하지 않습니다. - 테이블별로 적절히 데이터를 나누어 저장하는 구조
유저의 데이터를 종류에 따라 적절히 나누어 관리하며, 필요한 데이터만을 읽고 쓸 수 있어서 효율적인 관리가 가능합니다.
단, 테이블을 지나치게 많이 나누어 관리하는 경우에는 호출 요금이 크게 증가할 수 있기에 이 또한 적절한 관리가 필요합니다.
게임정보/유저데이터 일반 함수 대신, 트랜잭션 조회/쓰기 함수만 사용해도 될까요?
사용 방법에는 제한이 없습니다.
단, 트랜잭션 조회/쓰기의 경우 게임정보/유저데이터 일반 함수 대비 DB 처리량이 2배로 발생하기에,
데이터의 구조 및 중요도, 사용 빈도에 따라 두 함수를 적절히 사용하는 것을 권장드립니다.