MySQL与MongoDB的操作对比,以及区别

MySQL与MongoDB都是开源的常用数据库,但是MySQL是传统的关系型数据库,MongoDB则是非关系型数据库,也叫文档型数据库,是一种NoSQL的数据库。它们各有各的优点,关键是看用在什么地方。所以我们所熟知的那些SQL(全称Structured Query Language)语句就不适用于MongoDB了,因为SQL语句是关系型数据库的标准语言。

以我们公司项目为例,在早期的项目中,都在使用关系型数据库,用过SQLServer,Oracle,DB2,后来全部转向Mysql,原因很简单:Mysql在性能不错的情况下,有着开源优势。Mysql的事务性与高性能是我们主要考虑的。后来,由于项目要用到用户系统,即会有大量的用户数据进行交互--海量存储,Mysql的读写速度会有一点瓶颈,于是我们就想到了最近发展很强势的Nosql。在Nosql早期的memcache的发展下,又出现了很多非关系型数据库,比如redis,mongodb。经过一段时间的测试,redis与mongodb的读写速度确实比Mysql有着很明显的优势。mongodb的写入速度大约2.5W/次每秒。

mongodb以BSON结构(二进制)进行存储,对海量数据存储有着很明显的优势。下面是Mongodb与Mysql的操作命令的对比。


作用


MySQL


MongoDB


 


 


 


服务器守护进程


mysqld


mongod


客户端工具


mysql


mongo


逻辑备份工具


mysqldump


mongodump


逻辑还原工具


mysql


mongorestore


数据导出工具


mysqldump


mongoexport


数据导入工具


source


mongoimport


 


 


 


新建用户并授权


grant all on *.*
to [email protected]‘localhost‘
 identified by ‘passwd‘;


db.addUser("user","psw")
db.auth("user","psw")


显示库列表


show databases;


show dbs


进去库


use dbname;


use dbname


显示表列表


show tables;


show collections


查询主从状态


show slave status;


rs.status


创建库


create database name;


无需单独创建,直接use进去


创建表


create table tname(id int);


无需单独创建,直接插入数据


删除表


drop table tname;


db.tname.drop()


删除库


drop database dbname;


首先进去该库,db.dropDatabase()


 


 


 


插入记录


insert into tname(id) value(2);


db.tname.insert({id:2})


删除记录


delete from tname where id=2;


db.tname.remove({id:2})


修改/更新记录


update tname set id=3
where id=2;


db.tname.update({id:2},
{$set:{id:3}},false,true)


 


 


 


查询所有记录


select * from tname;


db.tname.find()


查询所有列


select id from tname;


db.tname.find({},{id:1})


条件查询


select * from tname where id=2;


db.tname.find({id:2})


条件查询


select * from tname where id < 2;


db.tname.find({id:{$lt:2}})


条件查询


select * from tname where id >=2;


db.tname.find({id:{$gte:2}})


条件查询


select * from tname where id=2
and name=‘steve‘;


db.tname.find({id:2,
name:‘steve‘})


条件查询


select * from tname where id=2
or name=‘steve‘;


db.tname.find($or:[{id:2},
{name:‘steve‘}])


条件查询


select * from tname limit 1;


db.tname.findOne()


 


 


 


模糊查询


select * from tname where name
like "%ste%";


db.tname.find({name:/ste/})


模糊查询


select * from tname where name
like "ste%";


db.tname.find({name:/^ste/})


 


 


 


获取表记录数


select count(id) from tname;


db.tname.count()


获取有条件
的记录数


select count(id) from tname
where id=2;


db.tname.find({id:2}).count()


查询时去掉
重复值


select distinct(last_name)
from tname;


db.tname.distinct(‘last_name‘)


 


 


 


正排序查询


select *from tname order by id;


db.tname.find().sort({id:1})


逆排序查询


select *from tname
order by id desc;


db.tname.find().sort({id:-1})


 


 


 


取存储路径


explain select * from tname
where id=3;


db.tname.find({id=3}).explain()

特别要注意的是:mongodb插入多个字段语法

> db.user.insert({id:1,name:‘steve‘,sex:‘male‘})  正确

> db.user.insert({id:2},{name:‘bear‘},{sex:‘female‘})  错误

时间: 2024-10-17 13:33:45

MySQL与MongoDB的操作对比,以及区别的相关文章

[转]MySQL与MongoDB的操作对比

MySQL与MongoDB都是开源的常用数据库,但是MySQL是传统的关系型数据库,MongoDB则是非关系型数据库,也叫文档型数据库,是一种NoSQL的数据库.它们各有各的优点,关键是看用在什么地方. 以我们公司项目为例,在早期的项目中,都在使用关系型数据库,用过SQLServer,Oracle,DB2,后来全部转向Mysql,原因很简单:Mysql在性能不错的情况下,有着开源优势.Mysql的事务性与高性能是我们主要考虑的.后来,由于项目要用到用户系统,即会有大量的用户数据进行交互--海量存

MYSQL数据库学习----MYSQL数据库、表操作和引擎区别

MYSQL数据库的操作 一:查看MYSQL中所有的数据库 SHOW DATABASES; 二:创建数据库 CRETAE DATABASE 数据库名称; 三:删除数据库 DROP DATABASE 数据库名称; 四:查看数据库支持的存储引擎 SHOW ENGINES; 四:连接MYSQL数据库 USE 数据库名称; MYSQL数据库中表的操作 一:查看数据库中的所有表格 SHOW TABLES: 二:查看表格的结构 DESC 表名称;(基本结构): 或 SHOW CREATE TABLE 表名称;

MySQL与MongoDB的区别

一.MongoDB简介 什么是MongoDB ?MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能.MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案.MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成.MongoDB 文档类似于 JSON 对象.字段值可以包含其他文档,数组及文档数组. 主要特点MongoDB的提供了一个面向文档存储,操作起来比较简单和容易.你可以在

MongoDB与MySQL的操作对比表及区别介绍

MongoDB与MySQL的操作对比表及区别介绍 MySQL与MongoDB都是开源的常用数据库,但是MySQL是传统的关系型数据库,MongoDB则是非关系型数据库,也叫文档型数据库,是一种NoSQL的数据库.它们各有各的优点,关键是看用在什么地方.所以我们所熟知的那些SQL(全称Structured Query Language)语句就不适用于MongoDB了,因为SQL语句是关系型数据库的标准语言. 以我们公司项目为例,在早期的项目中,都在使用关系型数据库,用过SQLServer,Orac

Mysql和Mongodb的区别与应用场景对比

MySQL是关系型数据库 优势: 在不同的引擎上有不同 的存储方式. 查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高. 开源数据库的份额在不断增加,mysql的份额页在持续增长. 缺点: 在海量数据处理的时候效率会显著变慢. Mongodb是非关系型数据库(nosql ),属于文档型数据库 文档是mongoDB中数据的基本单元,类似关系数据库的行,多个键值对有序地放置在一起便是文档,语法有点类似javascript面向对象的查询语言,它是一个面向集合的,模式自由的文档型数据库.

mysql和mongodb的区别

1.mongodb的概括 MongoDB(文档型数据库):提供可扩展的高性能数据存储 2.mongodb的功能概括 (1)基于分布式文件存储 (2)高负载情况下添加更多节点,可以保证服务器性能 (3)将数据存储为一个文档 3.mongodb和的其他关系型数据库的比较 (1)稳定性 (2)索引,索引放在内存中,能够提升随机读写的性能.如果索引不能完全放在内存,一旦出现随机读写比较高的时候,就会频繁地进行磁盘交换,MongoDB的性能就会急剧下降 (3)占用的空间很大,因为它属于典型空间换时间原则的

MySQL、MongoDB、Redis 数据库之间的区别与使用(本章迭代更新)

MySQL.MongoDB.Redis 数据库之间的区别与使用 MySQL.MongoDB.Redis 数据库之间的区别与使用(本章迭代更新) update:2019年2月20日 15:21:19(本章迭代更新) 一.数据库之间的区别 MySQL MySQL概述 关系型数据库.无论数据还是索引都存放在硬盘中.到要使用的时候才交换到内存中.能够处理远超过内存总量的数据. 在不同的引擎上有不同 的存储方式. 查询语句是使用传统的 SQL 语句,拥有较为成熟的体系,成熟度很高. 开源数据库的份额在不断

SOAP webserivce 和 RESTful webservice 对比及区别

简单对象访问协议(Simple Object Access Protocol,SOAP)是一种基于 XML 的协议,可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME),基于"通用"传输协议是 SOAP的一个优点.它还支持从消息系统到远程过程调用(Remote Procedure Call,RPC)等大量的应用程序.SOAP提供了一系列的标准,如WSRM(WS-Reliable Messaging)形

MySQL单列索引和组合索引的区别介绍(转)

原文:http://database.51cto.com/art/201011/233234.htm MySQL单列索引是我们使用MySQL数据库中经常会见到的,MySQL单列索引和组合索引的区别可能有很多人还不是十分的了解,下面就为您分析两者的主要区别,供您参考学习. 为了形象地对比两者,再建一个表: CREATE TABLE myIndex ( i_testID INT NOT NULL AUTO_INCREMENT, vc_Name VARCHAR(50) NOT NULL, vc_Cit