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

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

尽量降低key 的长度。

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

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

段,要做好规划。

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

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

代码里做一次判断。

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

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

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

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

对于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 使用总结的更多相关文章

  1. 【翻译】MongoDB指南/聚合——聚合管道

    [原文地址]https://docs.mongodb.com/manual/ 聚合 聚合操作处理数据记录并返回计算后的结果.聚合操作将多个文档分组,并能对已分组的数据执行一系列操作而返回单一结果.Mo ...

  2. 【翻译】MongoDB指南/CRUD操作(四)

    [原文地址]https://docs.mongodb.com/manual/ CRUD操作(四) 1 查询方案(Query Plans) MongoDB 查询优化程序处理查询并且针对给定可利用的索引选 ...

  3. 【翻译】MongoDB指南/CRUD操作(三)

    [原文地址]https://docs.mongodb.com/manual/ CRUD操作(三) 主要内容: 原子性和事务(Atomicity and Transactions),读隔离.一致性和新近 ...

  4. 【翻译】MongoDB指南/CRUD操作(二)

    [原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(二) 主要内容: 更新文档,删除文档,批量写操作,SQL与MongoDB映射图,读隔离(读关 ...

  5. 【翻译】MongoDB指南/CRUD操作(一)

    [原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(一) 主要内容:CRUD操作简介,插入文档,查询文档. CRUD操作包括创建.读取.更新和删 ...

  6. CRL快速开发框架系列教程十二(MongoDB支持)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  7. MongoDB系列(二):C#应用

    前言 上一篇文章<MongoDB系列(一):简介及安装>已经介绍了MongoDB以及其在window环境下的安装,这篇文章主要讲讲如何用C#来与MongoDB进行通讯.再次强调一下,我使用 ...

  8. MongoDB系列(一):简介及安装

    什么是MongoDB MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB 旨在为应用提供可扩展的高 ...

  9. [原]分享一下我和MongoDB与Redis那些事

    缘起:来自于我在近期一个项目上遇到的问题,在Segmentfault上发表了提问 知识背景: 对不是很熟悉MongoDB和Redis的同学做一下介绍. 1.MongoDB数组查询:MongoDB自带L ...

  10. 用MongoDB分析合肥餐饮业

    看了<从数据角度解析福州美食>后难免心痒,动了要分析合肥餐饮业的念头,因此特地写了Node.js爬虫爬取了合肥的大众点评数据.分析数据库我并没有采用MySQL而是用的MongoDB,是因为 ...

随机推荐

  1. C++11 lambda表达式(19篇C++11文章)

    C++11引入了lambda表达式,使得程序员可以定义匿名函数,该函数是一次性执行的,既方便了编程,又能防止别人的访问. Lambda表达式的语法通过下图来介绍: 这里假设我们定义了一个如上图的lam ...

  2. 获取URL中的文件的扩展名

    问题: 尽可能多地写出获取文件扩展名的方法: //方法一(分割数组) function getExt($url){ $arr = explode('.',$url); $len = count($ar ...

  3. AC日记——Little Elephant and Shifts codeforces 221e

    E - Little Elephant and Shifts 思路: 一次函数线段树(疯狂debug): b不断循环左移,判断每次最小的|i-j|,a[i]=b[j]: 仔细观察发现,每个bi移动时, ...

  4. MSSQL横列转纵列

    上篇我们说到了纵列转横列,这篇讲下横列转纵列,具体代码: 1.建表 CREATE TABLE [dbo].[EndLongChangeAcross]( ,) NOT NULL, ) NOT NULL, ...

  5. 计蒜客 18488.Extreme Sort (German Collegiate Programming Contest 2015 ACM-ICPC Asia Training League 暑假第一阶段第三场 E)

    E.Extreme Sort 传送门 代码: #include<iostream> #include<cstdio> #include<cstring> #incl ...

  6. 网络防嗅探工具SniffJoke

    网络防嗅探工具SniffJoke   在渗透测试中,通过网络嗅探,可以获取网络通信主机的各种信息.为了防止嗅探,Kali Linux提供了专用工具SniffJoke.该工具能够自动对用户的网络数据进行 ...

  7. lua的深拷贝和浅拷贝

    --- Deep copies a table into a new table. -- Tables used as keys are also deep copied, as are metata ...

  8. http 头信息详解(转)

    HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616.HTTP协议采用了请求/响应模型.客户 ...

  9. Visio中汇总两个箭头

    RT,相似度和信任度矩阵融合,两个箭头,选中其中一个,可以选格式--线条--终点选无,或者在快捷那选线条.

  10. tensorflow TensorArray 代码例子

    import tensorflow as tf import numpy as np B=3 D=4 T=5 tf.reset_default_graph() xs=tf.placeholder(sh ...