Foxtable(狐表)用户栏目专家坐堂 → openqq 网络编号 类别很多,是否需要使用表来存储最大编号?


  共有3429人关注过本帖树形打印复制链接

主题:openqq 网络编号 类别很多,是否需要使用表来存储最大编号?

帅哥哟,离线,有人找我吗?
chinaabs
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:53 积分:1001 威望:0 精华:0 注册:2019/2/26 16:38:00
openqq 网络编号 类别很多,是否需要使用表来存储最大编号?  发帖心情 Post By:2021/12/9 8:44:00 [只看该作者]

你好,最近使用openqq网络编号:http://www.foxtable.com/webhelp/topics/3008.htm
服务端使用了一个public字典 flbhs 存储最大id号。
源码比较复杂,不方便上传,举个例子:
1 订单表,订单编号是PO1234的格式
2 订单表有子表订单发货计划表,发货计划号是 PO1234_DP001,PO1234_DP002
3 订单发货计划表还有子表订单发货计划明细表,编号是在发货计划号上,加上下划线和DT001,如PO1234_DP002_DT001,PO1234_DP002_DT002

如果对 2 发货计划进行网络编号,PO1234_DP是qz,意味着public变量 flbhs 要存储每个订单对应的键,会有很多键。如果对3编号,则需要存储更多的键。
订单一般每年有1万个左右,对应发货计划也是1万个左右,明细大约在10万个左右。
这只是一部分,系统还有其他的编号也有类似情况,意味着flbhs 里面的键数量是万到百万的量级。

有以下几方面的疑惑:
  1. flbhs存储在内存中,访问速度很快。如果改用一个表存储,则每次申请号码,系统需要到表中查询数据,取号速度会比较慢?
  2. flbhs存储在内存中,键数量很大,但相对于内存大小,十万量级,或者百万量级是小还是大?或者说,到什么数量级,需要考虑用表来存储?
  3. 有没有比表存储更好的思路?


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/12/9 9:03:00 [只看该作者]

使用表存储吧,如果不是跨网络访问数据库,读取数据库的操作和读内存的操作之间的差距基本可以忽略不计。

可以看看这个链接的4楼例子:
http://foxtable.com/bbs/dispbbs.asp?boardid=2&Id=145239

 回到顶部