mongoDB 使用总结
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 使用总结的更多相关文章
- 【翻译】MongoDB指南/聚合——聚合管道
[原文地址]https://docs.mongodb.com/manual/ 聚合 聚合操作处理数据记录并返回计算后的结果.聚合操作将多个文档分组,并能对已分组的数据执行一系列操作而返回单一结果.Mo ...
- 【翻译】MongoDB指南/CRUD操作(四)
[原文地址]https://docs.mongodb.com/manual/ CRUD操作(四) 1 查询方案(Query Plans) MongoDB 查询优化程序处理查询并且针对给定可利用的索引选 ...
- 【翻译】MongoDB指南/CRUD操作(三)
[原文地址]https://docs.mongodb.com/manual/ CRUD操作(三) 主要内容: 原子性和事务(Atomicity and Transactions),读隔离.一致性和新近 ...
- 【翻译】MongoDB指南/CRUD操作(二)
[原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(二) 主要内容: 更新文档,删除文档,批量写操作,SQL与MongoDB映射图,读隔离(读关 ...
- 【翻译】MongoDB指南/CRUD操作(一)
[原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(一) 主要内容:CRUD操作简介,插入文档,查询文档. CRUD操作包括创建.读取.更新和删 ...
- CRL快速开发框架系列教程十二(MongoDB支持)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
- MongoDB系列(二):C#应用
前言 上一篇文章<MongoDB系列(一):简介及安装>已经介绍了MongoDB以及其在window环境下的安装,这篇文章主要讲讲如何用C#来与MongoDB进行通讯.再次强调一下,我使用 ...
- MongoDB系列(一):简介及安装
什么是MongoDB MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB 旨在为应用提供可扩展的高 ...
- [原]分享一下我和MongoDB与Redis那些事
缘起:来自于我在近期一个项目上遇到的问题,在Segmentfault上发表了提问 知识背景: 对不是很熟悉MongoDB和Redis的同学做一下介绍. 1.MongoDB数组查询:MongoDB自带L ...
- 用MongoDB分析合肥餐饮业
看了<从数据角度解析福州美食>后难免心痒,动了要分析合肥餐饮业的念头,因此特地写了Node.js爬虫爬取了合肥的大众点评数据.分析数据库我并没有采用MySQL而是用的MongoDB,是因为 ...
随机推荐
- 华为上机测试题(地铁换乘-java)
PS:自己写的,自测试OK,供大家参考. /* 高级题样题:地铁换乘描述:已知2条地铁线路,其中A为环线,B为东西向线路,线路都是双向的.经过的站点名分别如下,两条线交叉的换乘点用T1.T2表示.编写 ...
- 【linux高级程序设计】(第十一章)System V进程间通信 4
共享内存 共享内存主要用于实现进程间大量数据传输. 共享内存的数据结构定义: 系统对共享内存的限制: 共享内存与管道的对比: 可以看到,共享内存的优势: 1.共享内存只需复制2次,而管道需要4次 2. ...
- 【原创】Win Server 2012R2 IIS 详细配置(多图详解)
1. 前期准备 1) 2012系统的IIS安装的时候,需要系统安装盘里面的一些软件,因此需要在安装前将系统安装盘挂载到服务器的盘符上,以便使用. 2. 添加角色和功能 打开服务器管理器,点击管理菜单, ...
- ACM中的正则表达式
layout: post title: ACM中的正则表达式 author: "luowentaoaa" catalog: true mathjax: true tags: - 正 ...
- Web Api 返回图片流给前端
public class TestController : ApiController { public HttpResponseMessage GetImg() { //获取文件的绝对路径 stri ...
- Frequency
题目描述 Snuke loves constructing integer sequences. There are N piles of stones, numbered 1 through N. ...
- shell spool
If you wish to use SQL*Plus Command-line , you'll simply issue the sqlplus command from your shell: ...
- js timestamp 转换 date 和 将秒数整理为时分秒格式
// 获得的后台json 时间格式转化 例如:1520305366000 转化为XXXX-XX-XX类似这种 function timeStamp2String(time){ var datetim ...
- Flash3D学习计划(一)——3D渲染的一般管线流程
一:什么是渲染管线 渲染管线也称为渲染流水线,是显示芯片内部处理图形信号相互独立的并行处理单元.一个流水线是一序列可以并行和按照固定顺序进行的阶段.每个阶段都从它的前一阶段接收输入,然后把输出发给随后 ...
- JAVA实现通用日志记录
原文:http://blog.csdn.net/jinzhencs/article/details/51882751 前言: 之前想在filter层直接过滤httpServerletRequest请求 ...