首页 新闻 会员 周边 捐助

关于基础信息表,字典表,程序每次打开都要查询数据库吗?能不能经行差异更新

0
悬赏园豆:5 [待解决问题]

关于基础信息表,字典表,程序每次打开都要查询数据库吗?能不能经行差异更新,将这些信息保存在本地,程序每次加载的时候,将本地信息与差异表经行比较,将有差异的部分经行更新,这样效率是不是更高呢?

问题补充:

特别是一些数据量比较大的基础表

No.net的主页 No.net | 初学一级 | 园豆:197
提问于:2015-12-20 19:24
< >
分享
所有回答(2)
0

你的程序,数据量有多少大?GB级别还是TB级别?服务器标配是什么?并发量有多少?如果以上几点都没达到一定级别,可以不用起考虑你说的这种方式的调整优化,要知道,你按照这思路优化调整后的实现方式,复杂度会增加很多,亦就导致了可维护性的下降。在绝大多数情况下,程序的可维护性比性能要重要得多。

另,针对你的具体问题,目前任何的dbms都没有能达到你真实目的、同时又能提高性能的方案;因为你既然要整表的所有数据都做比较,要么比较每个 raw-row 的实际数据、要么比较每 row 的时间戳。不管哪种方式,你要么在客户端本机比较,就需要将服务器所有数据(完整raw-row数据或所有row的时间戳)download到客户端本机;要么在服务器比较,就需要将客户端所有数据upload到服务器。然后在其中一段循环遍历比较,这种性能的开销,反而是更大的,尤其是数据量稍多的情况下。

实际上,如果你dbms对象结果优化合理的情况下,例如分表、分区表、索引的,或者考虑用nosql数据库,性能一样能得到很大提高。

枫桥流云 | 园豆:209 (菜鸟二级) | 2015-12-21 09:11

 将本地Data 中最大更新时间取出来,跟数据库的 差异表 的更新时间经行 查询,将这个时间差的 数据 取出来,更新到内存.不知道这样能行不?

支持(0) 反对(0) No.net | 园豆:197 (初学一级) | 2015-12-21 17:28

@No.net: 实时并发有没有过10^3?单表数据量有没有过10^7?如果都没有的话,基本的数据库结构优化就够了,除非你的程序代码写的特别烂!

支持(0) 反对(0) 枫桥流云 | 园豆:209 (菜鸟二级) | 2015-12-25 00:22
0

楼上说的基本在理。

基础表数据量比较大,多大?几十亿条?

有思考是好的,不过所有的性能分析都要基于量化分析,没有使用度量的数据,一切都是空的。

你可能是听说了数据库性能,资源占用等等方面的问题,就替数据库担心了吧?

没事,目前你需要担心的主要还是代码的质量问题。

爱编程的大叔 | 园豆:30844 (高人七级) | 2015-12-21 12:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册