morphia insert陷阱

在使用mongodb的原生api   insert(DBObject)时,还有第2个参数,这个参数可以对照看mongo的文档里的getLastError (http://www.mongodb.org/display/DOCS/getLastError+Command)相关设置

 

主要是用于设置insert是safe模式unsafe模式。

在mongoDB中 默认以下三个操作insert , updateremove 是处于unsafe模式的。

 

unsafe模式的说明如下:

 

 /** Exceptions are raised for network issues, and server errors; waits on a server for the write operation */
 

也就是不管是否插入成功,不需要server端的反馈了,这样要比safe模式的需要获得反馈速度快很多,对于数据不是特别重要的使用mongoDB默认的insert就可以,否则需要增加safe=true的设置。

 

好接下来再说说mongoDB的java驱动,驱动默认是使用的NORMAL(unsafe)模式,当我使用morphia的时候,结果默认成safe模式,2个在插入百万级别的数据时,直接就看出对比了,真是陷阱。

 

 

你可能感兴趣的:(mongodb)