文章目录

[隐藏]

1. Mongodb简介及优缺点分析

2. MySQL优缺点分析

3. Mongodb和MySQL数据库的对比

4. MongoDB常用语句

1. Mongodb简介及优缺点分析

Mongodb是非关系型数据库(nosql ),属于文档型数据库。文档是mongoDB中数据的基本单元,类似关系数据库的行,多个键值对有序地放置在一起便是文档,语法有点类似javascript面向对象的查询语言,它是一个面向集合的,模式自由的文档型数据库。

存储方式:虚拟内存+持久化。

查询语句:是独特的Mongodb的查询方式。

适合场景:事件的记录,内容管理或者博客平台等等。

架构特点:可以通过副本集,以及分片来实现高可用。

数据处理:数据是存储在硬盘上的,只不过需要经常读取的数据会被加载到内存中,将数据存储在物理内存中,从而达到高速读写。

成熟度与广泛度:新兴数据库,成熟度较低,Nosql数据库中最为接近关系型数据库,比较完善的DB之一,适用人群不断在增长。

优点:

快速!在适量级的内存的Mongodb的性能是非常迅速的,它将热数据存储在物理内存中,使得热数据的读写变得十分快。高扩展性,存储的数据格式是json格式!

mogodb与MySQL性能对比 mongodb vs mysql性能_MySQL

缺点:

① mongodb不支持事务操作。

② mongodb占用空间过大。

③ 开发文档不是很完全,完善。

mogodb与MySQL性能对比 mongodb vs mysql性能_mogodb与MySQL性能对比_02

2. MySQL优缺点分析

优点:

在不同的引擎上有不同 的存储方式。

查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高。

开源数据库的份额在不断增加,mysql的份额页在持续增长。

缺点:

在海量数据处理的时候效率会显著变慢。

3. Mongodb和MySQL数据库的对比

传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,MongoDB是由数据库(database)、集合(collection)、文档对象(document)三个层次组成。

MongoDB对于关系型数据库里的表,但是集合中没有列、行和关系概念,这体现了模式自由的特点。

mogodb与MySQL性能对比 mongodb vs mysql性能_数据库_03

mogodb与MySQL性能对比 mongodb vs mysql性能_mogodb与MySQL性能对比_04

4. MongoDB常用语句

# 连接Mongo数据库,并设置数据存储地址 mongod.exe --dbpath "d:softwareMongoDBServer3.0data" #-----------------------#1# 数据库 # 查看所有的数据库 show dbs # 删除当前使用的数据库 db.dropDatabase() # 使用这个数据库(只有插入数据后完成创建数据库) use dbt # 查看当前使用的数据库 db db.getName() # 查看当前数据库状态 db.stats() # 修复当前数据库 db.repairDatabase() # 从一个数据库复制到另一个数据库 db.copyDatabase("mydb", "temp", "127.0.0.1"); #-----------------------#2# 集合 # 查看当前数据库下所有的集合 show collections show tables # 创建名称为coll集合 db.createCollection('coll') db.createCollection("coll2", {capped:true, autoIndexId:true, size:6142800, max:10000}) # 可选参数 # 查看当前集合状态 db.coll.stats() # 删除名称为coll集合 db.coll.drop() #-----------------------#3# 集合数据 # 插入空数据并且直接创建名称为coll集合 db.coll.insert({}) # 插入一个或多个数据 db.coll.insert({name:'tom', age:22}) db.coll.insert([{name:'adam', age:10},{name:'john', age:23}]) # 添加数据(save方法可以修改相同id的数据) db.coll.save({name:'allen'}) # 删除一个或所有的数据 db.coll.remove({name:'tom'}) db.coll.remove({}) # 删除符合条件的数据中的第一条 db.coll.remove({name:'tom'}, 1) # 更改数据 db.coll.update({name:'tom', age:22}, {$set:{name:'tom', age:222}}) # 查看数据 db.coll.find() # 查看一条数据 db.coll.findOne() db.coll.find({}, {name:1, '_id':0}) # 1表示显示,0表示不显示(find默认显示_id) # 格式化显示数据,使数据更加清晰明了 db.coll.find().pretty() # 使用and,or查看数据 db.coll.find({name:'tom', age:22}) # 等同and使用 db.coll.find({$or:[{name:'tom'}, {age:21}]}) # or使用 # 操作符大于,小于,等于,不等于,大于不等于,小于不等于 db.coll.find({age: {$gt: 22}}) # 大于 db.coll.find({age: {$lt: 22}}) # 大于 db.coll.find({age: 22}) # 等于 db.coll.find({age: {$ne: 22}}) # 不等于 db.coll.find({age: {$gte: 22}}) # 大于等于 db.coll.find({age: {$lte: 22}}) # 小于等于 # 显示从skip之后limit个 db.coll.find().limit(2).skip(1) #-----------------------# # 用户 # 3.x之后版本添加用户 use admin db.createUser({user:'nu', pwd:'nu', roles:[{role:'readWrite',db:'admin'}]}) # 用户认证 db.auth("nu", "nu"); # 显示当前所有用户 show users; db.system.users.find() 3.x版本删除用户 db.removeUser('nu') # 不推荐使用,已经废弃 db.dropUser("nu"); # 当前db版本 db.version(); # 当前db的链接机器地址和端口 db.getMongo(); # 备份到备份目录 mongodump # 从备份目录恢复备份语句。 mongorestore