首页 > 代码库 > mongoDB 使用总结

mongoDB 使用总结

http://blog.chinaunix.net/space.php?uid=22270773&do=blog&id=19935171. 如果无特别用途,建议:表名,字段名 全部用小写字母。

2.  尽可能的缩短字段名的长度,必要的时候,可以考虑建立一个key 与实际意义的map表,

    尽量降低key 的长度。

 

3. mongodb 单表最大索引数 为64个,这个是提示性建议。索引的指导原则,与mysqloracle 一致,

   尽量减少索引的数目,所有的排序字段应该都有索引,索引尽可能小, 所以这个再开发设计阶

   段,要做好规划。

 

4. mongodb 不像mysql oracle 那么可以方便的添加字段,如果添加字段且带有default 值,

   需要全部数据都要修改,这也是设计阶段需要考虑的事情,   这个问题的另外一种解法是应用

   代码里做一次判断。

 

5. 对于做数据库使用的Mongodb(做缓存使用的可以不做密码验证)

 

6. 注意碎片问题,经测试,同数量数据纯写入和存在update delete的,后者费空间较多;

   所以要观察faults等值判断是否需要做碎片整理;

   整理方法暂时发现有:dump-restorerepair对单点库或主从库,会影响服务。

   对于replset 方式部署的,可以采用轮换的方式,其中一台库下线,铲除数据,从新从集群中作全同步。

经过测试,repair 方式比较慢,采取dump-restore 或者重新同步的方式速度可以接受。

Master-Slave 方式部署的,就相当于从库重做+一次主从切换。

 

7. 数据源连接方式,使用连接池模式,尽量减少认证带来的性能额外消耗

建议采用标准的uri 连接方式: mongodb://user:passwd@host:port,host:port/db

 

 

8. Mongodb日志量比较大,正常情况下只需要开启-v或以下,并做日志回滚删除。

ongodb -v 日志适合在开发环境的调试线上部署 不建议采用这个参数,

目前线上部署的情况,-v 日志一天也会有几个G的日志量,去掉这个参数,

跟数据查询相关的操作就不会记日志了,数据库的内部的重要操作还是会写日志的。

 

 

9. mongodb的索引每次也是只能用到一个索引,对数据的查询不会“并发”执行

例如: db.tab.find({‘id‘=1,‘name‘=2})  如果‘id’,‘name‘ 列上分别有索引

对查询效率提升意义不大,如果索引为(‘id‘,‘name‘) 则大幅提升效率。

mongoDB 使用总结