社区
数据结构与算法
帖子详情
大数据的存储和查询
zuibird
2011-07-01 10:48:34
假设有一个虚拟彩票游戏,对一年中的每个月份选择一个方位(东,南,西,北),做为一个投注(即12个方位),要如何设计存储方式才能快速查询每种投注方式的投注数呢, 我知道一共有4的12次方(16777216)个投注方式,很大的数,不太可能把所有方式防在内存里。 请各位大侠帮看看
...全文
195
11
打赏
收藏
大数据的存储和查询
假设有一个虚拟彩票游戏,对一年中的每个月份选择一个方位(东,南,西,北),做为一个投注(即12个方位),要如何设计存储方式才能快速查询每种投注方式的投注数呢, 我知道一共有4的12次方(16777216)个投注方式,很大的数,不太可能把所有方式防在内存里。 请各位大侠帮看看
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
inlench
2011-07-01
打赏
举报
回复
[Quote=引用 9 楼 inlench 的回复:]
引用 5 楼 zuibird 的回复:
楼上可能理解有误, 16M存放什么东西?是投注数么,一个长整型,显然不够,其次怎么把一个具体的投注方式对应到你的16M内存的某个位置?
楼上算法有误!
整型就够了!
算法如下:
int *count = new int[16M];
count[N] 用来统计第N种投注方法
N 为 一个24bit 的数,每两位代表一个月的方位。
明……
[/Quote]
因此,实际上,如果每种投注最大允许为 2的8次方,内存需求是 16M
如果每种投注最大允许为 2的16次方,内存需求是 32M
如果每种投注最大允许为 2的32次方,内存需求是 64M
如果每种投注最大允许为 2的64次方,内存需求是 128M
inlench
2011-07-01
打赏
举报
回复
[Quote=引用 5 楼 zuibird 的回复:]
楼上可能理解有误, 16M存放什么东西?是投注数么,一个长整型,显然不够,其次怎么把一个具体的投注方式对应到你的16M内存的某个位置?
[/Quote]
楼上算法有误!
整型就够了!
算法如下:
int *count = new int[16M];
count[N] 用来统计第N种投注方法
N 为 一个24bit 的数,每两位代表一个月的方位。
明白了吗?
zuibird
2011-07-01
打赏
举报
回复
"24bit的整数" - -!
能说说你的这个“24bit的整数”怎么对应到内存中的那个投注数么?
inlench
2011-07-01
打赏
举报
回复
这个怎么不能放在内存里!最快的方法就是放在内存里。
4的12次方 = 16 M
每种投注方式用 4 字节的整数记录,也就 只需要 4*16M = 64 M 内存。
Win32位程序, 申请 2G 内存都可以,这点内存算什么!
oo
2011-07-01
打赏
举报
回复
长整型才8个字节 8*16M也才128M啊
对应方式很简单啊:
东,南,西,北 分别对应两个bit的:00,01,10,11
有12个月,就是12个这样的2个bit,拼起来就是一个 24bit的整数啊。
zuibird
2011-07-01
打赏
举报
回复
楼上可能理解有误, 16M存放什么东西?是投注数么,一个长整型,显然不够,其次怎么把一个具体的投注方式对应到你的16M内存的某个位置?
wuddny
2011-07-01
打赏
举报
回复
楼主可以考虑下分布式nosql数据库的存储,比如mongodb 如果文件的话 过多小文件对IO负荷很大。如果存储的数有规律的话,最好压缩一下。
oo
2011-07-01
打赏
举报
回复
4的12次方(16777216)
16M,放到内存里不是可以吗?
win32你可以用2G内存的,16M小case
zuibird
2011-07-01
打赏
举报
回复
这个具体的投注数实时变动, 数据库的效率跟不上。
我在考虑用文件,但不清楚怎样设计每种投注方式与文件的对应关系
leonardo1986
2011-07-01
打赏
举报
回复
数据库
axin36520101688
2011-07-01
打赏
举报
回复
555
大数据
的
存储
和
查询
优化总结
本文针对每日新增500万至1500万条记录的
大数据
量场景,提出了一系列数据库设计与
查询
优化建议,包括合理使用索引、避免在索引键上做计算、使用时间字段作为分区依据等。
Druid
大数据
之
存储
和
查询
本文介绍了 Druid 的数据处理方式,包括数据格式、预聚合、数据分片等内容,并详细解析了 Druid 的
查询
机制,涵盖了
查询
类型、配置参数、过滤器、聚合等功能。
探索
大数据
平台:goldlone的bigdata_platform
Goldlone的bigdata_platform是一个基于Hadoop和Spark的开源
大数据
平台,提供数据集成、
存储
、计算、
查询
及分析功能。它通过Kafka处理实时数据,ELK堆栈用于日志管理,适合企业级数据处理和分析。项目强调易用性和灵活性,以及活跃的社区支持。,
大数据
整体架构方案集合(
大数据
存储
架构、
大数据
处理架构、
大数据
查询
和计算架构、
大数据
安全架构)
本文详细阐述了
大数据
的整体架构,包括数据集成、
存储
与管理、处理与分析、
查询
计算、安全策略及最佳实践。涉及分布式文件系统、MapReduce、Hive和Impala等关键技术。
深入探讨Snowflake和LangChain的整合:
存储
与
查询
大数据
的高效方案
大数据
时代,高效
存储
和
查询
数据是企业关注焦点。本文介绍Snowflake与LangChain的整合方案,包括Snowflake嵌入模型的使用、文档加载器的操作,给出代码示例。还针对网络访问、模型兼容性等常见问题提供解决方案,助企业更好管理和利用数据。
数据结构与算法
33,025
社区成员
35,336
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章