mysql mango_mangodb与mysql的区别及部署
一, mangodb与mysql的区别
mangoDB与MYSQL都是开源的数据库,但是mysql是传统的关系型数据库,mangdb则是非关系型数据库,也可以称之为文档型数据库,是一种NoSQL的数据库,两则各自都有各自的优缺点
mysql: 关系型数据库。
优点: 成熟稳定, 源代码的可移植性; 支持的操作系统多 为多种编程语言提供API(接口)
缺点: 关系表的不灵活性;存储引擎混乱;原生json支持的缺乏
mangodb: 非关系型数据库
优点: 01,不存在sql注入:MySQL的是sql注入是一个很严重的缺点,虽然可以使用参数绑定和预处理以及特殊字符转义来处理。但是MongoDB根本不存在这个问题。xss攻击是需要防范。
02,不需要提前创建表:在MySQL中如果想要写入一条数据的话必须要先创建好一张表然后才能写入数据,比如:要在user表里写入id=1,username=‘aaa’,sex='女',age=‘20’这条数据,那你就必须在MySQL数据库上提前建好一张user表,并且至少必须有id,username,sex,age这几个字段才能写入成功。但是MongoDB可以直接写入数据,不需要提前创建表
03,字段数据格式自由:在MySQL中,如果id字段是数字的话你写一个字符串进去是会报错的,但是MongoDB不会
04,可以处理json结构:在MongoDB可以存储一个json对象,比如 字段a的值为{"a":11,"b":12,"c":"abc","d":[1,2,3]},你可以直接去读取或设置a字段的b值 a.b,读取a字段d数组的第二个值:a.d.1,可以去删除a字段的a数据$unset:{"a.a":1},就会变成:{"b":12,"c":"abc","d":[1,2,3]}
05,充分利用了计算机内存,所以查询和插入效率要远大于MySQL。我自己测试(400w随机数据)的时候只有在没有索引的情况下MongoDB的查询效率要远大于MySQL,插入效率和MySQL差不多都是8w条左右1分钟。在有索引的时候MySQL的查询要速度要高于MongoDB。
缺点:
Mongodb全局锁机制。
删除数据集合后空间不会自动释放
mysql与 mangodb对比
MySQL
MongoDB
服务器守护进程
mysqld
mongod
客户端工具
mysql
mongo
逻辑备份工具
mysqldump
mongodump
逻辑还原工具
mysql
mongorestore
数据导出工具
mysqldump
mongoexport
数据导入工具
source
mongoimport
新建用户并授权
grant all on *.*
to username@'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()
二, mangodb安装
01,配置yum地址
1 cat /etc/yum.repos.d/mangodb.repo2 [mongodb-org]3 name=MongoDB Repository4 baseurl=https://mirrors.tuna.tsinghua.edu.cn/mongodb/yum/el$releasever/
5 gpgcheck=0
6 enabled=1
yum makecache
02,安装mangodb
yum install mongodb-org
等待安装完成
03,配置mangodb
更改限制ip 由于我内网环境,python爬虫使用,设置为所有能访问
启动: service mongod start
停止: service mongod stop
04,使用mangodb
本地连接: mongo 127.0.0.1:27017
文章文字借鉴: https://www.cnblogs.com/syomm/p/5760441.html
https://www.cnblogs.com/fanhuo/p/9822853.html
mysql mango_mangodb与mysql的区别及部署相关推荐
- docker安装mysql redis_Docker安装Mysql和Redis以及构建部署应用镜像
为了方便本地测试项目,为了方便开启新的环境,为了方便部署,打算本地利用Docker安装Mysql和Redis. 搭建Springboot项目,编写Dockerfile,打包构建镜像. 简单使用dock ...
- MySQL数据库引擎介绍、区别、创建和性能测试的深入分析
深入理解MySQL的数据库引擎的类型 作者: 字体:[增加 减小] 类型:转载 本篇文章是对MySQL的数据库引擎的类型进行了详细的分析介绍,需要的朋友参考下 你能用的数据库引擎取决于mysql在 ...
- mysql社区版与cluster 区别_MySQL版本Enterprise/Community/Cluster等版本的区别
MySQL分为多种版本如Community.Enterprise.Cluster和Workbench等,MySQL不同版本有什么区别?LAMPLNMP分享: MySQL版本区别 ● MySQL Com ...
- mysql''和null,mysql中NULL和null的区别
接触php的web开发一段时间了,在进行数据库操作的时候经常会遇到一个问题,使得同一字段在页面显示时有3种类型NULL,null以及数字,当时的解决办法是将这一字段定义为varchar类型,在插入数据 ...
- linux上部署mysql服务_在Linux环境下部署MySql服务
之前有下载部署过几次,但是每次都会踩一些坑.特此记录在liunx下部署安装mysql的基本步骤: 1.卸载老版本的mysql find / -name mysql|xargs rm -rf 查 ...
- SQL Server 和 MySql 语法和关键字的区别
(1) MySQL的ifnull()函数对应sql的isnull()函数; (2) mysql的存储过程中变量的定义去掉@; (3) mysql的每句结束要用";" ...
- mysql r和n的区别_mysql数据库 r n
mysql集群的备份与还原 应用场景 当使用mysql集群数据库的时候,有时候会误删一些数据,那么数据就缺失了完整性,现在需要将数据进行备份,将误删的数据还原出来,这样保证数据的完整性. 操作步骤 注 ...
- Linux---一台主机部署多版本mysql服务和mysql实例
1.背景 服务器上有mysql5.5.38,要求升级为mysql5.6 2.方法 为了降低影响范围,可持续作业,决定在现有基础上部署mysql5.6,即部署多版本mysql 3.注意事项 1.与现有m ...
- mysql.createpool_Node.js MySQL模块中mysql.createConnection和mysql.createPool有什么区别?
我试图了解它们之间的区别 mysql.createConnection var mysql = require('mysql'); var connection = mysql.createConne ...
- php里面sql是什么意思,MySQL和SQL是什么?MySQL和SQL之间的区别有哪些
MySQL和SQL之间的区别有哪些?很多PHP的初学者,对MySQL,MyAdmin和SQL有什么区别并不是很清楚?下面 第一PHP社区 就带领大家来学习一下MySQL和SQL之间的区别.[推荐阅读: ...
最新文章
- 再见Navicat!这个工具才是YYDS!
- 实模式与保护模式详解三:寻址方式
- Dubbo 源码分析 - 服务引用
- 代码检查规则背景及总体介绍
- docker入门之容器网络
- Apache Ranger插件的美丽简洁
- ABP入门系列(21)——切换MySQL数据库
- [RMAN]数据文件的恢复
- AcWing 896. 最长上升子序列 II(二分优化LIS)
- Linux下如何阅读开源项目
- oracle iso,Oracle数据库之Linux操作系统各版本ISO镜像下载(包括oracle linux\redhat\centos\u...
- python绘制缓和曲线_CAD绘制缓和曲线说明
- /*CS5460_Note_1*/
- 腾讯云云直播、云点播
- Intellij IDEA 提示 Cannot access com... 解决办法
- 【译】JavaScript中的Promises
- linux内存管理笔记(三十四)----匿名映射
- Windows11无法打开Windows安全中心(需要使用新应用打开此windowsdefender链接)
- linux 防火墙黑名单
- 黄明:国际投行向华兜售“金融鸦片”