游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2904|回复: 2

游戏数据服务端的设计, 恳请一些意见

[复制链接]

12

主题

21

帖子

27

积分

注册会员

Rank: 2

积分
27
发表于 2012-7-5 20:42:00 | 显示全部楼层 |阅读模式

一般来说游戏服务端都会把逻辑和数据操作分开, 单独设计一个数据服务端程序.

那么这个数据段需不需要缓存设计呢. 如果有缓存, 那么就需要把多个数据操作拼合成一个操作. 比如说玩家连续使用了多个物品, 产生了若干操作命令.
在真实执行数据操作的时候是一个个执行肯定不划算, 就需要一个操作就执行所有更新.

但这种设计跟数据库表设计紧密相关. 典型的如物品. 在数据表中存储物品数据可能有两种情况:
1, 每个玩家的所有物品数据(比如背包, 仓库)只占用一行记录. 多个物品数据保存在一个长的字段中.
2, 每个物品占用一行记录, 玩家的物品在数据表中占用若干行, 这种设计便于外部接口比如网页等对物品数据直接操作.


如果是第1种设计, 那更新数据的时候比较容易, 直接更新一行记录就行.
如果是第2种设计, 就有点麻烦, 可以先把该玩家所有的物品记录全部delete,再进行一次批量insert. 但这样做的话delete,insert操作频繁, 在高峰时段可能造成瓶颈. 另外还有数据id增长过快, 数据日志膨胀过快等缺点.

除此之外, 还有什么好办法吗?

71

主题

1330

帖子

2585

积分

金牌会员

Rank: 6Rank: 6

积分
2585
发表于 2012-7-6 09:08:00 | 显示全部楼层

Re:游戏数据服务端的设计, 恳请一些意见

你需要考虑的是,除了物品外,你其他数据是做一条保存呢,还是做多条保存,是保存在一个表里呢,还是保存在不同表。把这些数据存储的方式都统一了就行。

7

主题

75

帖子

286

积分

中级会员

Rank: 3Rank: 3

积分
286
发表于 2012-7-8 15:55:00 | 显示全部楼层

Re:游戏数据服务端的设计, 恳请一些意见

如果第二种的性能可以满足需要就用第二种,性能差就差吧。第二种达不到要求才用第一种。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-27 23:06

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表