C++高速数据缓存设计方案

dreamlins 2008-03-18 10:42:16
小弟正用c++设计一个数据输入输出的接口,从数据库中取出数据给用户使用,及更新数据库的表记录,现需要一个高速数据缓存区,即先把数据库记录取出,缓存在本地。供用户快速使用,寻求高效解决方案。谢谢!
...全文
1024 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
那一年我们21 2012-08-03
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]
to: Supper_Jerry
hashmap是高效,但查询条件很局限

to: laolaoliu2002
Memorycache是java里面的吧?c++里怎用?
[/Quote] 你做好的能否给我看看 谢谢你了 我的QQ1013453044 麻烦你了
那一年我们21 2012-08-03
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]
to: Supper_Jerry
hashmap是高效,但查询条件很局限

to: laolaoliu2002
Memorycache是java里面的吧?c++里怎用?
[/Quote] 你做好的能否给我看看 谢谢你了 我的QQ1013453044 麻烦你了
xkyx_cn 2008-07-16
  • 打赏
  • 举报
回复
数据库记录量?
用户量?
用户身份?
……
supercow 2008-07-16
  • 打赏
  • 举报
回复
应该个有个优化的策略吧.
可以在用户读取数据前根据用户身份判断可能取到的数据,来进行优化. 不过楼主没说这些细节~~
hai040 2008-07-16
  • 打赏
  • 举报
回复
mark
可以考虑用内存数据库
yumei20001 2008-07-16
  • 打赏
  • 举报
回复
首先SQl 语句就得先优化

也可以用个本地库来存放数据
zhengxianglei 2008-07-16
  • 打赏
  • 举报
回复
不是太懂。看看看看~
jianmuyan 2008-07-16
  • 打赏
  • 举报
回复
Vitin 2008-07-16
  • 打赏
  • 举报
回复
做项目建议配置数据库或者使用内存数据库。

如果是做研究,建议自己设计微型的内存数据库:
1、用大块内存存储连续数据记录,使用索引提高查询速度。
2、降低读写真实数据库的次数,批量读取与更新。
3、确定操作接口,根据需求决定设计。
Vitin 2008-07-16
  • 打赏
  • 举报
回复
数据库管理系统一般都有自己的高速缓存。在内存足够的前提下通过合适的配置可以大大提高性能。

另外还有名为“内存数据库”的技术,提供基于内存的整套数据库解决方案。

sandrowjw 2008-07-16
  • 打赏
  • 举报
回复
首先如果对地址重新编码的话,访问就不是问题,但是那样要重载整个内存管理层。
还有我感觉这种问题没有通用方案,最好是分析你的代码,找到内存分配效率上的瓶颈然后加以解决。数据库本身就有缓存机制,但是缓存的作用与否和数据库的设计优劣关系很大,所以与其动脑筋去考虑缓存,不如优化一下数据库设计(如果你用的Access就当我没说)。
逸学堂 2008-07-16
  • 打赏
  • 举报
回复
排出其他问题

你可以看看memcached,很多大型网站都使用它做缓存(如果缓存命中率不能达到90%,最好别用)
http://danga.com/memcached/

另外:lz还是仔细分析一下影响性能的主要因素吧。
Dancing_Sea 2008-03-31
  • 打赏
  • 举报
回复
不要说hashmap没有用
你将你的 查询条件作为key,vector 里面的索引号作为value.

具体还是要看你的查询原则.

艾,还是废贴
Dancing_Sea 2008-03-31
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 taodm 的回复:]
查找规则都没谈,只能说是废贴。
[/Quote]

就是

楼主最好描述清楚你的数据是如何使用的,数据规模,用户查询、提交的频度

1、可以建立索引(跟数据库的索引类似),这样你可以将高速索引放到内存中,其他的放到文件里面
2、建立缓冲池,将读写频度高的放到内存中.

Skt32 2008-03-31
  • 打赏
  • 举报
回复
使用内存文件
michney 2008-03-21
  • 打赏
  • 举报
回复
memorycache,开源的
dreamlins 2008-03-21
  • 打赏
  • 举报
回复
在线等 求方案。。
YJ1973 2008-03-21
  • 打赏
  • 举报
回复
“现在是用vector来保存,不过数据查找的时候速度比较慢,故需求更高效方案。”
“hashmap是高效,但查询条件很局限”
要快速查询就要索引,对一项属性要索引,就要维护至少一个索引表
你想“查询条件不局限”又要“快”,那你就要都索引。

一般的数据库做法都是在key上索引

缓存数据的主要目的是为了减少访问代价,缓存的结果应该与数据库的逻辑结构保持一致。





taodm 2008-03-21
  • 打赏
  • 举报
回复
查找规则都没谈,只能说是废贴。
dreamlins 2008-03-19
  • 打赏
  • 举报
回复
有没有谁有更好的建议呀!!拜托了
加载更多回复(11)

64,849

社区成员

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

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