我有一个业务需要根据上一次数据库的数据进行更新标志位(数据库用的是 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
我认为可能是因为我的数据是一条一条查询的数据库所以很慢,有什么更好的办法能批量查询吗?
1
kindjeff 2016-11-30 13:00:11 +08:00
没太看懂这个代码。这个 cache_list 作为缓存发挥的作用是什么?
|
2
SlipStupig OP @kindjeff 缓存上一次查询到的结果
|
3
SlipStupig OP @kindjeff 我将上一次数据库里面查询到的结果保存起来,如果相同就不需要再查数据库了
|
4
enenaaa 2016-11-30 13:50:51 +08:00
那你的目表是什么呢。
如果嫌查询慢, 那 1 、启动时一次性将尽量多的数据加载到 cache 2 、更新时顺带更新 cache 3 、优化数据库查询 |