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 [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()

 

二,  mangodb安装

   01,配置yum地址  

1 cat /etc/yum.repos.d/mangodb.repo
2 [mongodb-org]
3 name=MongoDB Repository
4 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   

原文地址:https://www.cnblogs.com/kingle-study/p/9857195.html

时间: 2024-10-26 17:54:24

mangodb与mysql的区别及部署的相关文章

mysql数据库多实例部署

本文系统:rhel5.8 ip : 192.168.100.150 数据库版本:mysql-5.6.15 1.创建部署mysql服务账号: [[email protected] ~]# useradd -d /opt/mysql mysql [[email protected] ~]# echo "mysql" |passwd --stdin mysql Changing password for user mysql. passwd: all authentication token

[MySQL] MySQL的自动化安装部署

有过MySQL运维的人应该都清楚,线上的MySQL一般都采用源码编译,因为这样才可以根据企业的各自需要选择要编译的功能,虽然MySQL的源码编译挺简单的,但是试想一下,如果你有几百台服务器同时要安装MySQL,难道你还一台台去手动编译.编写配置文件吗?这显然太低效了,本文讨论MySQL的自动化安装部署. 1.制作符合自己需求的RPM包 我们要根据MySQL的源码编译符合企业需求的RPM包,源码获取命令如下: wget http://downloads.mysql.com/archives/get

SqlServer 、Oracle 、MySql 的区别

一.sqlserver 优点: 易用性.适合分布式组织的可伸缩性.用于决策支持的数据仓库功能.与许多其他服务器软件紧密关联的集成性.良好的性价比等: 为数据管理与分析带来了灵活性,允许单位在快速变化的环境中从容响应,从而获得竞争优势.从数据管理和分析角度看,将原始数据转化为商业智能和充分利用Web带来的机会非常重要.作为一个完备的数据库和数据分析包,SQLServer为快速开发新一代企业级商业应用程序.为企业赢得核心竞争优势打开了胜利之门.作为重要的基准测试可伸缩性和速度奖的记录保持者,SQLS

LVS+MYCAT+读写分离+MYSQL主备同步部署手册

LVS+MYCAT+读写分离+MYSQL主备同步部署手册 1          配置MYSQL主备同步…. 2 1.1       测试环境… 2 1.2       配置主数据库… 2 1.2.1         编辑my.cnf文件… 2 1.2.2         重启数据库… 2 1.3       锁定主数据库DDL操作… 2 1.4       主备已有数据同步… 2 1.5       停止从服务… 3 1.6       配置备用数据库… 3 1.6.1         编辑my

【转载】LVS+MYCAT+读写分离+MYSQL主备同步部署手册(邢锋)

By leo | 2015/05/13 0 Comment LVS+MYCAT+读写分离+MYSQL主备同步部署手册 1          配置MYSQL主备同步…. 2 1.1       测试环境… 2 1.2       配置主数据库… 2 1.2.1         编辑my.cnf文件… 2 1.2.2         重启数据库… 2 1.3       锁定主数据库DDL操作… 2 1.4       主备已有数据同步… 2 1.5       停止从服务… 3 1.6      

Mycat和MySQL的区别——Mycat的核心作用

有个朋友面试的时候被问到:Mycat和MySQL的区别.我们可以把上层看作是对下层的抽象,例如操作系统是对各类计算机硬件的抽象.那么我们什么时候需要抽象?假如只有一种硬件的时候,我们需要开发一个操作系统吗?再比如一个项目只需要一个人完成的时候不需要leader,但是当需要几十人完成时,就应该有一个管理者,发挥沟通协调等作用,而这个管理者对于他的上层来说就是对项目组的抽象.同样的,当我们的应用只需要一台数据库服务器的时候我们并不需要Mycat,而如果你需要分库甚至分表,这时候应用要面对很多个数据库

mysql+rsyslog+loganalyzer的部署方案

需求篇 公司最近因为审核需要部署一台中心日志服务器,其实为什么要部署日志服务器呢? 1) 主要是为了方便统一查看公司所有服务器的日志,并且写入到数据库中,进行web显示方便的查看: 2) 可以起到一定的安全作用,,如果黑客攻击之后,clear history的时候,我们也是可以查看的: 3) 另外,如果服务器出现故障无法使用的时候,我们也是可以追踪到日志信息: Loganalyzer 是一个syslog和其他网络事件数据的web前端工具,提供简单易用的日志浏览,搜索和基本分析以及图标显示.采用P

SQLserver与MySQL的区别(数据库小白须知!!!)

SQLserver与mysql的区别 1.概述的不同 SQL Server 是Microsoft 公司推出的关系型数据库管理系统.具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2012 的大型多处理器的服务器等多种平台使用.Microsoft SQL Server 是一个全面的数据库平台,使用集成的商业智能 (BI)工具提供了企业级的数据管理.Microsoft SQL Server

MySQL数据库主从同步部署

MySQL数据库主从同步部署: 环境 Mater:   CentOS6.4  mysql5.5.38  192.168.107.133 Slave:   CentOS6.4  mysql5.5.38  192.168.107.135 1.导出主服务数据,将主备初始数据同步 master: //从master上导出需要同步的数据库信息 mysqldump -u*** -p*** --database test > test.sql //将master上的备份信息传输到slave上 scp /roo