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,是因为 ...
随机推荐
- MySQL -MMM 学习整理
一. 规划 1.主机规划 服务器 IP 作用 monitor 10.0.0.10 监控服务器 master-01 10.0.0.5 读写主机01 master-02 10.0.0.6 读写主机02 s ...
- svn 基本使用
通过脚本删除物理文件已经不存在的文件 svn st | sed -n '/!/p' | awk '{print $2}' | xargs svn delete 或 svn st | awk '{if ...
- Educational Codeforces Round 33 (Rated for Div. 2) B. Beautiful Divisors【进制思维/打表】
B. Beautiful Divisors time limit per test 2 seconds memory limit per test 256 megabytes input standa ...
- Openjudge1388 Lake Counting【DFS/Flood Fill】
http://blog.csdn.net/c20182030/article/details/52327948 1388:Lake Counting 总时间限制: 1000ms 内存限制: ...
- (寒假集训)Reordering the Cows
Reordering the Cows 时间限制: 1 Sec 内存限制: 64 MB提交: 18 解决: 7[提交][状态][讨论版] 题目描述 Farmer John's N cows (1 ...
- [给自己扫盲]Node.js 究竟是什么?
Node.js 究竟是什么? 一个 “编码就绪” 服务器 Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念.它的目标是帮助程序员构建高度可伸缩的应用程序,编写能 ...
- centos从头学习配置web服务器环境
为了学习linux下配置web服务器环境,于是安装了vmware,准备在虚拟机里面学习web服务器的搭建! 首先是在虚拟机里安装centos,我选择的是32位的centos6.6版本,因为新版本7据说 ...
- openfire源码研究笔记:对设计模式及原则的学习
原文:http://blog.csdn.net/jinzhencs/article/details/50522105 一.拦截器的实现 地点: package org.jivesoftware.o ...
- Enum枚举类使用集合
1.使用扩展方法使用枚举值对于的Description属性值 public static class EnumExtenstion { public static string GetDescript ...
- JAVA常见算法题(十四)
package com.xiaowu.demo; /** * 输入某年某月某日,判断这一天是这一年的第几天? * * * @author WQ * */ public class Demo14 { p ...