服务器发包 效率

yuyunliuhen 2009-04-29 12:14:57
当客户端向服务器发送某种请求的时候,
方案1:
客户端向服务器发送userid(4bytes),username(16bytes),经过gateserver mainserver,dbserver, 到达dbserver操作数据库,然后同样返回userid(4bytes),username(16bytes)给客户端。

方案2:
户端向服务器发送userid(4bytes),,经过gateserver mainserver,dbserver, 到达dbserver,通过userid SELECT username,再进行其他的数据库操作,查找然后返回userid(4bytes),到达客户端后同样搜索在客户端保存的列表,获取username。


当这样的请求是大量的时候,选择哪个方案,当仅是少量的时候呢?
数据量假设是500000吧。

方案一仅仅在服务器上多了16bytes,少了数据库的查询操作
方案二则相反。

请大家发表下看法吧,1,2,或者基本不影响?顺便简单说下理由,主要从效率上来考虑,many thanks!
...全文
411 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuyunliuhen 2009-04-29
  • 打赏
  • 举报
回复
好的 明白了
谢谢
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 yuyunliuhen 的回复:]
引用 2 楼 hairetz 的回复:
我选方案1,包的大小差别不大的情况下,对收发包的效率没什么影响。但是方案1却可以省掉数据库的查询动作。

我不知道你查询的数据是不是主键,如果不是主键,这个效率还是有差距的。所以,我觉得方案好些。


查询的数据部是主键的
[/Quote]

这样一来我又偏向第2个方案了,对主键的查询基本不影响效率,那包小点就小点吧。
主要你的细节,我们不太清楚。。你自己斟酌吧。
yuyunliuhen 2009-04-29
  • 打赏
  • 举报
回复

这个是做加入氏族的时候,一省了查询 减少了服务器的压力 DBSERVER通过ID查NAME.
二则省了带宽


都感觉一比较好
mengde007 2009-04-29
  • 打赏
  • 举报
回复
我觉得两者差不多;在效率上来讲;最终都要查询
liliangbao 2009-04-29
  • 打赏
  • 举报
回复
我选方案1
减少服务器的工作量就是提高整体效率做有效的方式~
amossavez 2009-04-29
  • 打赏
  • 举报
回复
你方案一,少了数据库的查询怎么返回结果了??
yuyunliuhen 2009-04-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hairetz 的回复:]
我选方案1,包的大小差别不大的情况下,对收发包的效率没什么影响。但是方案1却可以省掉数据库的查询动作。

我不知道你查询的数据是不是主键,如果不是主键,这个效率还是有差距的。所以,我觉得方案好些。
[/Quote]

查询的数据部是主键的
gxw145 2009-04-29
  • 打赏
  • 举报
回复
顶一下~~
Paradin 2009-04-29
  • 打赏
  • 举报
回复
也感觉1好些。
  • 打赏
  • 举报
回复
我选方案1,包的大小差别不大的情况下,对收发包的效率没什么影响。但是方案1却可以省掉数据库的查询动作。

我不知道你查询的数据是不是主键,如果不是主键,这个效率还是有差距的。所以,我觉得方案好些。
thinkboy234 2009-04-29
  • 打赏
  • 举报
回复
顶一下~~

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧