这段时间做了一数据统计后台,db的选型上使用了mongodb,原因比较简单,就是需要统计的字段会经常随着需求变化而变化。
在数据入库方面,经过各种尝试,个人稍微总结了一下:
一、插入方式:
1、如果要使用insert,那么一般情况下,这些数据是改动比较小的,或者是不用修改的,比如插入一些流水数据。
2、如果插入的数据可能字段基本是一致的,就只有稍微那么一两个字段不一样,那么可以考虑使用upsert。这样可以减少数据库中记录的数量。但是也这样有个缺点就是可能性能会有所下降。
insert插入:
使用insert插入的时候,一个请求中使用批量插入,插入性能会明显的提升。
upsert插入:
使用upsert的方式插入有一个比较明显的优点,就是可以让逻辑层的设计和代码更加的简单,其实也就是把update和insert结合。比如集合中有一条记录是用于统计用户在某个商家体验某种服务的次数,使用upsert的话业务代码就会很简单。不过有一点需要注意的,就是_id需要在业务层就可以直接计算出来。