버그 해결을 위한 모든 질문을 던져
0 votes
338 views
c++로 게임 서버를 만들고 데이터를 mariadb에 저장하고 있습니다.

궁금한게 수시로 바뀌는 데이터를 실시간으로 DB에 업데이트 해줄 경우 문제가 생길까요?

예를 들어 유저들이 몬스터를 계속해서 잡는데 이때 나오는 경험치와 골드를 바로 DB에 업데이트 해주는 방식을 사용 할 경우

접속한 유저가 많을 경우에 과부하 같은 문제가 발생 할 수 있을까요?

예전에 잠깐 봤던 서버의 경우는 유저가 접속 종료 할때나 일정 시간마다 DB에 모든 정보를 업데이트를 해주는 방식을 사용 했는데

혹시라도 서버가 비정상 종료 될 경우 데이터가 업데이트 되지 않아서 빽섭이 되어버리지 않을까 걱정되어서 말이죠.

이렇게 해도 되는지 아닌지 알 수가 없어서 질문 남깁니다.
asked (2 point)
수정됨 , 338 views

2 answers

0 votes
파티셔닝을 할 수 있습니다.

사용자 별로 물리적인 DB의 적절한 용량을 나눕니다.

users 테이블이 있다고 가정하고,

여러개의 다른 물리적인 DB 에 사용자의 데이터를 분산시킵니다.

DB 에서도 파티셔닝을 지원하며, 프로그래밍 적으로도 구현 하실 수 있습니다.
answered (4 point)
0 votes
동접이 적으면 문제 없겟지만 많으면 부하때문에 db가 못버틸겁니다 ㅎ

말씀 하신대로 메모리에 들고 있다가 주기적으로 db에 업데이트 하는것도 방법이고

섭다로 유실이 우려 된다면 중간에 redis 같은 메모리 기반 db를 쓰는 방법도 있겠네요.
answered (57 point)
수정됨

버그 해결을 위해 도움을 구하고, 도움을 주세요. 우리는 그렇게 발전합니다.

throw bug 는 프로그래밍에 대한 전분야를 다룹니다. 질문,논의거리,팁,정보공유 모든 것이 가능합니다. 프로그래밍과 관련이 없는 내용은 환영받지 못합니다.

544 질문
703 answers
684 댓글
118,235 users