MySQL与MongoDB的操作对比,以及区别
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL与MongoDB的操作对比,以及区别,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3253字,纯文字阅读大概需要5分钟。
内容图文
![MySQL与MongoDB的操作对比,以及区别](/upload/InfoBanner/zyjiaocheng/471/7ae93f12a3ef40e4888d8f31a567d00b.jpg)
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 *.* |
db.addUser("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 |
db.tname.update({id:2}, |
|
|
|
查询所有记录 |
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 |
db.tname.find({id:2, |
条件查询 |
select * from tname where id=2 |
db.tname.find($or:[{id:2}, |
条件查询 |
select * from tname limit 1; |
db.tname.findOne() |
|
|
|
模糊查询 |
select * from tname where name |
db.tname.find({name:/ste/}) |
模糊查询 |
select * from tname where name |
db.tname.find({name:/^ste/}) |
|
|
|
获取表记录数 |
select count(id) from tname; |
db.tname.count() |
获取有条件 |
select count(id) from tname |
db.tname.find({id:2}).count() |
查询时去掉 |
select distinct(last_name) |
db.tname.distinct(‘last_name‘) |
|
|
|
正排序查询 |
select *from tname order by id; |
db.tname.find().sort({id:1}) |
逆排序查询 |
select *from tname |
db.tname.find().sort({id:-1}) |
|
|
|
取存储路径 |
explain select * from tname |
db.tname.find({id=3}).explain() |
MySQL与MongoDB的操作对比,以及区别
标签:
本文系统来源:http://www.cnblogs.com/xiaoqian1993/p/5904765.html
内容总结
以上是互联网集市为您收集整理的MySQL与MongoDB的操作对比,以及区别全部内容,希望文章能够帮你解决MySQL与MongoDB的操作对比,以及区别所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。