Chinaunix首页 | 论坛 | 博客
  • 博客访问: 834393
  • 博文数量: 167
  • 博客积分: 7173
  • 博客等级: 少将
  • 技术积分: 1671
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-04 23:07
文章分类

全部博文(167)

文章存档

2018年(1)

2017年(11)

2012年(2)

2011年(27)

2010年(88)

2009年(38)

分类: 数据库开发技术

2011-08-02 14:54:58

1. 如果无特别用途,建议:表名,字段名 全部用小写字母。

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') 则大幅提升效率。







阅读(1158) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~