本文目录:
- 1、Mongodb和mysql的区别
- 2、mongo和mysql索引有什么不同?
- 3、mysql mongodb区别
- 4、mongodb和mysql的区别 知乎
- 5、谁能用最简单的语言或者例子说下 Mysql,SQLite,Mongo的区别
Mongodb和mysql的区别
Mongodb和mysql的区别
1.Mongodb简介及优缺点分析
Mongodb是非关系型数据库(nosql ),属于文档型数据库。文档是mongoDB中数据的基本单元,类似关系数据库的行,多个键值对有序地放置在一起便是文档,语法有点类似javascript面向对象的查询语言,它是一个面向集合的,模式自由的文档型数据库。
存储方式:虚拟内存+持久化。
查询语句:是独特的Mongodb的查询方式。
适合场景:事件的记录,内容管理或者博客平台等等。
架构特点:可以通过副本集,以及分片来实现高可用。
数据处理:数据是存储在硬盘上的,只不过需要经常读取的数据会被加载到内存中,将数据存储在物理内存中,从而达到高速读写。
成熟度与广泛度:新兴数据库,成熟度较低,Nosql数据库中最为接近关系型数据库,比较完善的DB之一,适用人群不断在增长。
优点:
快速!在适量级的内存的Mongodb的性能是非常迅速的,它将热数据存储在物理内存中,使得热数据的读写变得十分快。高扩展性,存储的数据格式是json格式!
缺点:
① mongodb不支持事务操作。
② mongodb占用空间过大。
③ 开发文档不是很完全,完善。
2.MySQL优缺点分析
优点:
在不同的引擎上有不同 的存储方式。
查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高。
开源数据库的份额在不断增加,mysql的份额页在持续增长。
缺点:
在海量数据处理的时候效率会显著变慢。
3.Mongodb和MySQL数据库的对比
传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,MongoDB是由数据库(database)、集合(collection)、文档对象(document)三个层次组成。
MongoDB对于关系型数据库里的表,但是集合中没有列、行和关系概念,这体现了模式自由的特点。
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
咱们下期见。
mongo和mysql索引有什么不同?
Mongodb和Mysql索引选型
1)首先两种数据库都选择平衡m叉树作为底层索引结构,因为平衡树m叉树是同种元素序列情况下的深度最小的m叉排序树。这可以减少m叉树元素查找的深度,从而提升平均查找效率。B树和B+树都是平衡m叉树。
2)Mongodb选择B树为索引结构,Mongodb是典型的非关系行数据库,设计之初就不会用来做多个遍历操作,那么如果要查询单条数据的话只要进行一次中序遍历,查到与叶子上数据相同的节点即可。
3)Mysql是典型的关系型数据库,选择B+树的原因是所有再也节点的数据都有前后关系,因为有链指针,由于非终结点并不是最终指向文件内容的结点,而只是叶子结点中关键字的索引。因此任何关键字的查找必须走一条从根结点到叶子结点的路。所有关键字查询的路径长度相同,导致每一个数据的查询效率相当,B+树的查询效率更加稳定。而且把所有同一内部节点的关键字存放在同一盘块中,这样磁盘容纳的关键字数量也越多,一次性读入内存的需要查找的关键字也就越多,相对IO读写次数就降低了。
mysql mongodb区别
前言:
MySQL与MongoDB都是开源的常用数据库,但是MySQL是传统的关系型数据库,MongoDB则是非关系型数据库,也叫文档型数据库,是一种NoSQL的数据库。它们各有各的优点,关键是看用在什么地方。所以我们所熟知的那些SQL语句就不适用于MongoDB了,因为SQL语句是关系型数据库的标准语言。
一、关系型数据库-MySQL
1、在不同的引擎上有不同的存储方式。
2、查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高。
3、开源数据库的份额在不断增加,mysql的份额页在持续增长。
4、缺点就是在海量数据处理的时候效率会显著变慢。
二、非关系型数据库-MongoDB
非关系型数据库(nosql ),属于文档型数据库。先解释一下文档的数据库,即可以存放xml、json、bson类型系那个的数据。这些数据具备自述性,呈现分层的树状数据结构。数据结构由键值(key=value)对组成。
1、存储方式:虚拟内存+持久化。
2、查询语句:是独特的MongoDB的查询方式。
3、适合场景:事件的记录,内容管理或者博客平台等等。
4、架构特点:可以通过副本集,以及分片来实现高可用。
5、数据处理:数据是存储在硬盘上的,只不过需要经常读取的数据会被加载到内存中,将数据存储在物理内存中,从而达到高速读写。
6、成熟度与广泛度:新兴数据库,成熟度较低,Nosql数据库中最为接近关系型数据库,比较完善的DB之一,适用人群不断在增长。
三、MongoDB优势与劣势
优势:
1、在适量级的内存的MongoDB的性能是非常迅速的,它将热数据存储在物理内存中,使得热数据的读写变得十分快。
2、MongoDB的高可用和集群架构拥有十分高的扩展性。
3、在副本集中,当主库遇到问题,无法继续提供服务的时候,副本集将选举一个新的主库继续提供服务。
4、MongoDB的Bson和JSon格式的数据十分适合文档格式的存储与查询。
劣势:
1、 不支持事务操作。MongoDB本身没有自带事务机制,若需要在MongoDB中实现事务机制,需通过一个额外的表,从逻辑上自行实现事务。
2、 应用经验少,由于NoSQL兴起时间短,应用经验相比关系型数据库较少。
3、MongoDB占用空间过大。
mongodb和mysql的区别 知乎
如果每条记录的记录格式是固定的,不是不定列的,优先SQL,SQL体系发展了这么久,事件、索引等技术不是近年的NoSQL可比。
mongodb是基于文档式的,对于记录格式不等倒是不错,索引方面……还是不要提了。
谁能用最简单的语言或者例子说下 Mysql,SQLite,Mongo的区别
MYSQL是硬盘,SQLITE是U盘,MongoDB是内存条
用途上,MYSQL和SQLITE是一样的。。都是用来存数据。。区别在于MYSQL需要启动后台服务,而SQLITE只需要一个文件,并不需要启动服务。。MYSQL的表空间的最大容量为64TB。。而整体容量几乎是无上限的,前提是你要有足够的硬盘空间。。而SQLITE的最大数据量,经过实际测试,大约在2TB左右。。
MYSQL只能部署在电脑上,而SQLITE既可以部署在电脑上,也可以用于手机等移动设备。。。但MYSQL支持的数据量比较大,SQLITE数据量小。。。这两个数据库对于数据储存都不够精确,小数点位数过多时,会丢失精度。一半用于互联网行业,做图文类网站。不能用于金融、财务、军事、科研、测绘等需要保证小数点精度的工作。更高端的数据库有SqlServer和ORACLE,这两个数据库则十分精确。
MongoDB是NOSQL数据库,这玩意和MYSQL,SQLITE不是一回事。。。里面其实是一大堆类似JSON的键值对。。。主要作用是作为临时储存,相当于变相起到了给关系型数据库加速的作用。。简单讲,它的作用主要用于加速,而并不是用于最终储存。。所以它是选配,并不是必须的。注意MongoDB有安全问题,非常容易攻击。若是有重要数据,最好别用。
本文来源:https://www.yuntue.com/post/137623.html | 云服务器网,转载请注明出处!

微信扫一扫打赏
支付宝扫一扫打赏