服务器架构之性能扩展-第九章(10)

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介:

第九章Mongodb数据库

9.1mongodb入门

9.1.1 NoSQL入门

NoSQLnot only SQL的缩写,它指的非关系型数据库,是以key-value形式存储,和传统数据不一样,比如不遵循sql标准。随着大数据时代的到来,NoSQL有助于解决传统数据库扩展困难,读写慢,成本高,有限的支撑容量问题.因为它在扩展和性能方面做了提升,对于事务性的要求还不能代替传统数据库。目前新浪微博的redis数据库,视觉中国的mongodb都属于NoSQL数据库范畴。

9.1.2认识mongodb

 

Mongodb是一个介于关系数据库和非关系数据之间的产品,它语法类似javascript语言。数据是键与值的一种组合,格式如{age”:25}形式,数据以集合存储。目前已超过百家网站使用mongodb

9.1.3 mongodb的安装

首先到mongodb.org上下载相应版本。

Tar zxvf mongodb-linux-x86-2.2.2.tgz   //解压

Cd mongodb-linux-x86-2.2.2  //解压完毕后即成为可执行程序

 

9.1.4 启动mongodb

Mkdir /usr/local/mongodb

Mkdir /usr/local/mongodb/data

Rsync  -auvz /root/mongo-linux-ix86-2.2.0/bin/ /usr/local/mongodb/

Touch /usr/local/mongodb/dblogs

 

/usr/local/mongodb/bin/mongod  --dbpath=/usr/local/mongodb –logpath=/usr/local/mongodb/dblogs –fork  //启动mongodb

 

Echo /usr/local/mongodb/bin/mongod  --dbpath=/usr/local/mongodb –logpath=/usr/local/mongodb/dblogs --fork >>/etc/rc.local //开机启动

一般使用pkill mongod  //终止进程,避免使用kill -9杀死进程,因为容易造成mongodb死锁。

/usr/local/mongodb/bin/mongo  进入字符界面

9.1.5mongodb体系结构

Mongodb数据库不同于传统的关系数据结构,它包括文档,集合和数据三级结构组成。物理结构为一个ns文件一些数据库.0和数据库.1成。Mongodb数据类型,包括null、布尔、数字、字符串、数组以及对象六种数据类型组成。

9.1.6 mongodb基本命令

>Show dbs  //显示所有数据库

>db.dropDatabase();  //删除当前数据库

>use mydb   //建立新的数据库

>db.user.insert({name:”user1”,age:25}); //插入数据

>db.user.find();  //查看数据

>db.user.drop({name:”user1”}); //删除记录

>db.user.update({_id:1},{name:”user2”});  //修改记录

9.2  mongodb的高级操作

9.2.1 insert的操作

>db.user.save({name:”user2”});  //保存数据

saveinsert一般有同样的插入效果。 但是当主键id相同时,save便会只做修改不做插入的操作。

 

Db.cl.remove();删除所有记录,如果加上记录字段则删除相应字段。

批量插入数据

 Js方式插入数据

9.2.2 find查询的操作

Db.c1.find();查询语句

Find命令也可以指查找指定字段,字段值为1为真显示,为0为假。

条件查询,gt大于,lt小于,e等于,ne不等于,gte大于等于,lte小于等于,用$定义。

 

Sort用于排序排列,用sort排列,-1位倒叙,1位正序排列

Limit用来控制显示输出个数,skip用来排除前面多少个

in用来进行范围查找

$or或的查询,$nor非,orin区别是:or可以接不同字段,in需要接同一个字段。

插入数组,用elemMatch查找数组,代替post.title

查询控制两种方法

 

 

查询数组记录,必须在第二个字段进行

9.2.3 update更新的操作

Db.collection.updatecriteriaobjNewupsertmulti);

Criteria:用于设置查询条件的对象

Objnew:用于设置更新内容

Upsert:如果记录村子啊就更新它,否则新增一记录

Multi:如果多个符合条件的记录,只会更新第一个符合条件的记录

Upsert第三个参数,意思是如果字段不存在则增加该字段

 

$set可以用于改变源字段值或增加新字段

 

$inc字段每个年龄增加一岁,inc对字段曾进行增减值的更改

$unset删除字段,当age为真时删除字段

$push增加数组字段

$pop删除上条记录,如为-1则从前数,$pushAll一次插入多条记录

addToSet只能插入不同值记录

$addToSet$each一起用一次加入多个值

$pull删除数组指定值,$pullAll删除多个指定值

$rename更改字段名

9.2.4 创建capped collection固定集合

固定集合是固定大小的数据存储方式,它速度处理更快

Db.createCollectionc6{cappedtruesize10000max5}); //数据大小10kB,记录5条,填满了则取代前面的记录

Db.runCommand({convertTocapped:”test”,size:10000});

9.2.5 GridFS大存储类型

GridFS是一种大二进制文件,可以存储一些大文件。包含.files元数据对象和.chunks二进制块信息。

加载GridFS数据类型:

Cd /usr/local/mongodb/bin

Tar zcvf mongofiles.tar.gz  mongosniff

./mongofiles put mongofiles.tar.gz

Mongofile是进行文件上传下载的工具,put上传,get下载

9.3           mongodb性能管理

性能优化,如同大多数数据库一样索引可以很好地完成优化工作。可以通过explain()查看数据查询记录的次数。

9.3.1     mongodb的索引管理

>db.c1.ensureIndex({name:1});  //建立索引

>db.c1.getIndexes();  //查看索引

再执行explain()便可以看到次数变为8->1

Db.c1.dropIndexes();   //删除索引

9.3.2     profile慢查询

profile是一种慢查询日志功能。可以通过两种方式开启:

1、          启动mongodb是可以加上—profile=级别

2、          使用db.setProfilingLevel(级别,时间); 定义级别

0-:不开启;1-:记录慢查询;2-:记录所有密令

最后通过>db.getProfilingLevel();查看级别

9.3.3     mongodb优化方案

首先建立索引可以提高执行效率

其次使用limit();可以减少资源的消耗量

再次capped collection固定空间功能可以提高效率

再次,查询时指定字段而不是所有字段,提高速度

最后使用慢查询功能,优化语句。

9.3.4     mongodb性能监控

mongosniff命令可以监控数据库操作历史

Mongostat命令可以查看mongodb实时结果

 

 

 

 

 

 

本文转自zsaisai 51CTO博客,原文链接:http://blog.51cto.com/3402313/989251

相关文章
|
23天前
|
存储 数据挖掘 BI
2-5 倍性能提升,30% 成本降低,阿里云 SelectDB 存算分离架构助力波司登集团实现降本增效
波司登集团升级大数据架构,采用阿里云数据库 SelectDB 版,实现资源隔离与弹性扩缩容,查询性能提升 2-5 倍,总体成本降低 30% 以上,效率提升 30%,助力销售旺季高效运营。
101 9
|
1月前
|
存储 弹性计算 安全
阿里云服务器2核8G与4核16G配置选购参考:价格、性能及适用场景
2核8G、4核16G配置是很多个人和企业用户搭建网站和中小型数据库系统等场景时首选的云服务器配置,现在购买2核8G配置最低年付价格只要652.32元/1年,4核16G配置短期租用可以选择月付,现在89元即可购买到经济型e实例4核16G10M带宽配置1个月,年付选择通用算力型u1实例价格为1196.64元/1年起。本文为大家解析阿里云服务器2核8G与4核16G配置的租用费用,热门实例适用场景,以供参考和选择。
|
24天前
|
存储 机器学习/深度学习 弹性计算
阿里云服务器ECS计算型c9i规格族性能与特点、配置性能参数表
阿里云ECS计算型c9i实例基于Intel® Xeon® Granite Rapids处理器,主频3.2GHz,全核睿频3.6GHz,提供稳定高性能计算能力。支持NVMe协议、vTPM安全加密,适用于机器学习、大数据分析、高性能计算等场景,具备高安全、低延迟、强扩展等优势。
|
2月前
|
弹性计算 缓存 运维
阿里云服务器38元、99元、199元区别及各自性能和适用场景参考
目前在阿里云的活动中有三款价格非常实惠的云服务器,轻量应用服务器2核2G配置仅需38元/年,云服务器ECS经济型e实例2核2G配置99元/年,通用算力型u1实例2核4G配置199元/年,本文为大家介绍这几款云服务器的区别及各自的性能和使用场景情况,以供选择参考。
|
2月前
|
存储 弹性计算 数据挖掘
阿里云2核4G5M带宽199元云服务器测评:价格、性能、适用场景与续费优势详解
阿里云目前活动中推出的“2核4G5M带宽199元1年”云服务器,是当下深受初创企业用户喜爱的云服务器。本文将从价格优势、性能优势和续费优势等几个方面,详细解析这款阿里云199元云服务器的各项特点,帮助大家更好地了解这款云服务器的性能和应用场景,以供选择参考。
|
1月前
|
存储 安全 数据挖掘
阿里云特惠云服务器轻量级38元,经济型99元,通用算力型199元性能、适用场景及选择参考
2025年,阿里云推出了3款特惠云服务器,轻量云服务器2核2G200M峰值带宽38元一年,经济型e实例云服务器2核2G3M带宽99元1年,通用算力型u1实例2核4G5M带宽199元1年。本文将深度解析这三款现象级产品的配置亮点、适用场景,以供参考和选择。
|
2月前
|
存储 缓存 测试技术
阿里云服务器经济型e实例怎么样?性能、价格与适用场景全解析
阿里云服务器经济型e实例2核2G3M带宽40G ESSD Entry云盘价格只要99元1年,而且续费不涨价。经济型e实例是阿里云面向个人开发者、学生以及小微企业推出的一款入门级云服务器。这款实例以其高性价比和灵活的配置,迅速赢得了市场的青睐。那么,阿里云服务器经济型e实例到底怎么样?是否值得购买呢?本文将为您解析经济型e实例的性能、价格与适用场景,以供参考。
|
2月前
|
机器学习/深度学习 存储 缓存
阿里云服务器企业级实例选购攻略:八代/九代/倚天实例性能、场景、选型参考
2025年阿里云活动中适合企业用户的云服务器实例规格主要为通用算力型u1、计算型c8i、计算型c9i、计算型c8y、通用型g8i、通用型g9i、通用型g8y、内存型r9i、内存型r8y等实例。本文为大家介绍这些实例规格的性能、场景以及选型参考。
|
26天前
|
存储 机器学习/深度学习 缓存
阿里云企业级九代云服务器:c9i、g9i、r9i实例的收费标准、性能与选型攻略
计算型c9i、通用型g9i和内存型r9i实例是阿里云专为需要高性能云服务器的用户推出的第九代新品云服务器实例规格,适用于机器学习推理应用,数据分析等场景。本文为大家介绍阿里云服务器的新品实例——计算型c9i、通用型g9i、内存型r9i实例各自的性能参数与适用场景,再到最新的活动价格与其他实例的对比选型指南,以供参考。

热门文章

最新文章