如何取舍“把数据全部存到对象里还是用什么去数据库里查”?

叫我 Teacher 周 2014-07-31 01:53:38
我公司现在的程序是 有一个符合实体,第一次都把跟这个对象相关的外键对象全部存到这个实体里
之后的操作都是对这个实体来操作,循环啊判断啊等等,只要是查询都用


还是,需要用到什么表的数据,再去查什么表。有可能会涉及到联查等等


哪一种性能会比较好??
...全文
146 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
MiceRice 2014-08-01
  • 打赏
  • 举报
回复
楼主你对业务场景说的不够详细,核心要考虑的是如下几个问题: 1、数据规模:如果数据规模太大,全部放入内存就很不可行; 2、查询方式:如果经常是需要做 分组统计类(GroupBy)查询,就相当不好;如果经常是需要查询一组记录返回,那也不怎么不好;如果经常做的是唯一主键查询,那就比较好; 3、是否面临更新、更新方式(追加、修改、删除)、更新频度; 4、是否面临关联性检索需要,被关联数据的规模情况、更新情况等; 建议楼主你自己可以就数据表使用情况自行做个分析,再把拿捏不定的提出来讨论。
业余草 2014-07-31
  • 打赏
  • 举报
回复
如果是交换机之类的设备,数据硬盘配置较低,最后不要使用数据库,这样硬盘损坏的很快。如果是普通pc,或者是其它高性能的服务器,就要取舍一下了。如果并发量高,建议使用数据库。当然内存够用的情况下,还是建议你使用内存,比较内存更快。
业余草 2014-07-31
  • 打赏
  • 举报
回复
1.放到内存里 好处:速度快,减少频繁请求数据库 坏处:需要做同步机制,数据库-->内存,内存-->数据库 2.放到数据库里 好处:持久化,不易丢失,保证数据库完整性 坏处:占用数据库连接,请求效率不高 感觉这种问题,需要LZ看下,到底数据量有多大,放到内存中是否合适,有无对数据复杂运算等。 另外,现在设计基本上会使用缓存(redis、memcached)外置,程序重启后不影响数据。 各有优缺点,需要LZ综合考虑。 说的很对,看楼主的取舍
大齐zy 2014-07-31
  • 打赏
  • 举报
回复
1.放到内存里 好处:速度快,减少频繁请求数据库 坏处:需要做同步机制,数据库-->内存,内存-->数据库 2.放到数据库里 好处:持久化,不易丢失,保证数据库完整性 坏处:占用数据库连接,请求效率不高 感觉这种问题,需要LZ看下,到底数据量有多大,放到内存中是否合适,有无对数据复杂运算等。 另外,现在设计基本上会使用缓存(redis、memcached)外置,程序重启后不影响数据。 各有优缺点,需要LZ综合考虑。

25,984

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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