mongodb数据库适合做什么

mongodb数据库适合做什么,第1张

Mongodb和mysql的区别

1Mongodb简介及优缺点分析

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

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

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

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

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

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

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

优点:

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

缺点:

① mongodb不支持事务 *** 作。

② mongodb占用空间过大。

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

2MySQL优缺点分析

优点:

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

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

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

缺点:

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

3Mongodb和MySQL数据库的对比

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

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

4MongoDB常用语句

# 连接Mongo数据库,并设置数据存储地址

mongodexe --dbpath "d:softwareMongoDBServer30data"

#-----------------------#1# 数据库

# 查看所有的数据库

show dbs

# 删除当前使用的数据库

dbdropDatabase()

# 使用这个数据库(只有插入数据后完成创建数据库)

use dbt

# 查看当前使用的数据库

db

dbgetName()

# 查看当前数据库状态

dbstats()

# 修复当前数据库

dbrepairDatabase()

# 从一个数据库复制到另一个数据库

dbcopyDatabase("mydb", "temp", "127001");

#-----------------------#2# 集合

# 查看当前数据库下所有的集合

show collections

show tables

# 创建名称为coll集合

dbcreateCollection('coll')

dbcreateCollection("coll2", {capped:true, autoIndexId:true, size:6142800, max:10000}) # 可选参数

# 查看当前集合状态

dbcollstats()

# 删除名称为coll集合

dbcolldrop()

#-----------------------#3# 集合数据

# 插入空数据并且直接创建名称为coll集合

dbcollinsert({})

# 插入一个或多个数据

dbcollinsert({name:'tom', age:22})

dbcollinsert([{name:'adam', age:10},{name:'john', age:23}])

# 添加数据(save方法可以修改相同id的数据)

dbcollsave({name:'allen'})

# 删除一个或所有的数据

dbcollremove({name:'tom'})

dbcollremove({})

# 删除符合条件的数据中的第一条

dbcollremove({name:'tom'}, 1)

# 更改数据

dbcollupdate({name:'tom', age:22}, {$set:{name:'tom', age:222}})

# 查看数据

dbcollfind()

# 查看一条数据

dbcollfindOne()

dbcollfind({}, {name:1, '_id':0}) # 1表示显示,0表示不显示(find默认显示_id)

# 格式化显示数据,使数据更加清晰明了

dbcollfind()pretty()

# 使用and,or查看数据

dbcollfind({name:'tom', age:22}) # 等同and使用

dbcollfind({$or:[{name:'tom'}, {age:21}]}) # or使用

# *** 作符大于,小于,等于,不等于,大于不等于,小于不等于

dbcollfind({age: {$gt: 22}}) # 大于

dbcollfind({age: {$lt: 22}}) # 大于

dbcollfind({age: 22}) # 等于

dbcollfind({age: {$ne: 22}}) # 不等于

dbcollfind({age: {$gte: 22}}) # 大于等于

dbcollfind({age: {$lte: 22}}) # 小于等于

# 显示从skip之后limit个

dbcollfind()limit(2)skip(1)

#-----------------------# # 用户

# 3x之后版本添加用户

use admin

dbcreateUser({user:'nu', pwd:'nu', roles:[{role:'readWrite',db:'admin'}]})

# 用户认证

dbauth("nu", "nu");

# 显示当前所有用户

show users;

dbsystemusersfind()

3x版本删除用户

dbremoveUser('nu') # 不推荐使用,已经废弃

dbdropUser("nu");

# 当前db版本

dbversion();

# 当前db的链接机器地址和端口

dbgetMongo();

# 备份到备份目录

mongodump

# 从备份目录恢复备份语句。

mongorestore

咱们下期见。

继续通过YCSB命令执行压力测试,已验证恢复后数据的完整性,该测试共执行1000W条 *** 作,90%read、5%update和5%insert,通过执行结果可知update和insert执行 *** 作全部成功,而read *** 作有12个失败,导致read *** 作失败的原因是否因为数据恢复有问题暂时无法确定,YCSB也没有提供更详细的失败原因,所以使用mongodump+mongorestore+mongobackup来实现增量备份是否可靠还需要进一步确认。

[frankey@mongo-server3 ycsb-014]$ /bin/ycsb run mongodb -threads 100 -P workloads/readandupdateandinsert1 > runresult

[UPDATE], Operations, 499944

[UPDATE], AverageLatency(us), 20879322764149583

[UPDATE], MinLatency(us), 150

[UPDATE], MaxLatency(us), 1428679

[UPDATE], 95thPercentileLatency(ms), 64

[UPDATE], 99thPercentileLatency(ms), 97

[UPDATE], Return=0, 499944

[INSERT], Operations, 499827

[INSERT], AverageLatency(us), 21033383328631706

[INSERT], MinLatency(us), 172

[INSERT], MaxLatency(us), 1485376

[INSERT], 95thPercentileLatency(ms), 64

[INSERT], 99thPercentileLatency(ms), 97

[INSERT], Return=0, 499827

[READ], Operations, 9000229

[READ], AverageLatency(us), 4457124366946663

[READ], MinLatency(us), 83

[READ], MaxLatency(us), 1346130

[READ], 95thPercentileLatency(ms), 15

[READ], 99thPercentileLatency(ms), 36

[READ], Return=0, 9000217

[READ], Return=1, 12

通过以上过程可知,mongobackup的实现应该是参考了mongodump --oplog和mongorestore --oplogReplay的源码。在使用mongobackup进行增量备份恢复时,数据恢复速度与mongorestore类似,即每秒钟恢复20000条记录。

Navicat | 关于备份和还原 

一个安全和可靠的服务器是与定期运行备份有密切的关系,因为由攻击、硬体故障、人为错误、电力中断等引致的错误

有可能随时发生。

Navicat 为用户提供一个内置备份和还原工具用于备份或还原 MySQL、PostgreSQL、SQLite 和 MariaDB 数据库对

象。对于 Oracle、SQL Server 和 MongoDB,用户可以使用以下的功能。

• Oracle 数据泵

• SQL Server 备份和还原

• MongoDump 和 MongoRestore

内置备份和还原工具(仅适用于非 Essentials 版) 

关于内置备份和还原工具

内置备份和还原工具让你备份或还原你数据库内的对象。你可以将设置保存为一个配置文件以供将来使用或用作设置自

动运行任务。在主窗口中,点击 “备份”来打开备份的对象列表。

提示备份文件保存于设置位置。若要打开该文件夹,请右键单击备份文件,然后选择“打开所在的文件夹”。

注意仅适用于 MySQL、PostgreSQL、SQLite 和 MariaDB。

具体内容去官网下载用户手册。

直接在旧手机安装“QQ同步助手”,备份好通信录,然后在新手机登录“QQ同步助手”,还原通信录就好了。如果你已经导出了vcard文件,比较简单的方法是:在电脑上使用应用助手、豌豆荚或者91手机助手等软件,批量导入到新手机即可。

以上就是关于mongodb数据库适合做什么全部的内容,包括:mongodb数据库适合做什么、数据库mongoDB怎么安装 为什么我下载的解压缩后里面没有bin目录解压缩后再怎么办、运行mongo之前为什么要先运行mongod等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9316756.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存