求一个数据库更新思路

2016-11-30 12:45:15 +08:00
 SlipStupig

我有一个业务需要根据上一次数据库的数据进行更新标志位(数据库用的是 mongodb ),当我新数据更新的时候我需要和老数据进行对比决定是否更新,目前已经做了缓存但是还是没有达到我的目标



new_item = queue.get()  #得到一条数据

#查询是否在缓存内
if new_item in cache_list:  
   return new_item

else:
    query_result = fetch_flag_change(new_item)  #得到标志位是否相同
    if  query_result == signal_1:
         cache_list.update({query_result: signal_1})
    elif query_result == signal_2:
         cache_list.update({query_result: signal_2})
   else:
         return cache_list

我认为可能是因为我的数据是一条一条查询的数据库所以很慢,有什么更好的办法能批量查询吗?

1701 次点击
所在节点    Python
4 条回复
kindjeff
2016-11-30 13:00:11 +08:00
没太看懂这个代码。这个 cache_list 作为缓存发挥的作用是什么?
SlipStupig
2016-11-30 13:13:54 +08:00
@kindjeff 缓存上一次查询到的结果
SlipStupig
2016-11-30 13:15:18 +08:00
@kindjeff 我将上一次数据库里面查询到的结果保存起来,如果相同就不需要再查数据库了
enenaaa
2016-11-30 13:50:51 +08:00
那你的目表是什么呢。
如果嫌查询慢, 那
1 、启动时一次性将尽量多的数据加载到 cache
2 、更新时顺带更新 cache
3 、优化数据库查询

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/324313

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX