日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql mango_mangodb与mysql的区别及部署

發(fā)布時間:2023/12/10 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql mango_mangodb与mysql的区别及部署 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一, mangodb與mysql的區(qū)別

mangoDB與MYSQL都是開源的數(shù)據(jù)庫,但是mysql是傳統(tǒng)的關系型數(shù)據(jù)庫,mangdb則是非關系型數(shù)據(jù)庫,也可以稱之為文檔型數(shù)據(jù)庫,是一種NoSQL的數(shù)據(jù)庫,兩則各自都有各自的優(yōu)缺點

mysql: 關系型數(shù)據(jù)庫。

優(yōu)點: 成熟穩(wěn)定, 源代碼的可移植性; 支持的操作系統(tǒng)多 ??為多種編程語言提供API(接口)

缺點:?關系表的不靈活性;存儲引擎混亂;原生json支持的缺乏

mangodb: 非關系型數(shù)據(jù)庫

優(yōu)點: 01,不存在sql注入:MySQL的是sql注入是一個很嚴重的缺點,雖然可以使用參數(shù)綁定和預處理以及特殊字符轉義來處理。但是MongoDB根本不存在這個問題。xss攻擊是需要防范。

02,不需要提前創(chuàng)建表:在MySQL中如果想要寫入一條數(shù)據(jù)的話必須要先創(chuàng)建好一張表然后才能寫入數(shù)據(jù),比如:要在user表里寫入id=1,username=‘aaa’,sex='女',age=‘20’這條數(shù)據(jù),那你就必須在MySQL數(shù)據(jù)庫上提前建好一張user表,并且至少必須有id,username,sex,age這幾個字段才能寫入成功。但是MongoDB可以直接寫入數(shù)據(jù),不需要提前創(chuàng)建表

03,字段數(shù)據(jù)格式自由:在MySQL中,如果id字段是數(shù)字的話你寫一個字符串進去是會報錯的,但是MongoDB不會

04,可以處理json結構:在MongoDB可以存儲一個json對象,比如 字段a的值為{"a":11,"b":12,"c":"abc","d":[1,2,3]},你可以直接去讀取或設置a字段的b值 a.b,讀取a字段d數(shù)組的第二個值:a.d.1,可以去刪除a字段的a數(shù)據(jù)$unset:{"a.a":1},就會變成:{"b":12,"c":"abc","d":[1,2,3]}

05,充分利用了計算機內存,所以查詢和插入效率要遠大于MySQL。我自己測試(400w隨機數(shù)據(jù))的時候只有在沒有索引的情況下MongoDB的查詢效率要遠大于MySQL,插入效率和MySQL差不多都是8w條左右1分鐘。在有索引的時候MySQL的查詢要速度要高于MongoDB。

缺點:

Mongodb全局鎖機制。

刪除數(shù)據(jù)集合后空間不會自動釋放

mysql與 mangodb對比

MySQL

MongoDB

服務器守護進程

mysqld

mongod

客戶端工具

mysql

mongo

邏輯備份工具

mysqldump

mongodump

邏輯還原工具

mysql

mongorestore

數(shù)據(jù)導出工具

mysqldump

mongoexport

數(shù)據(jù)導入工具

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

查詢主從狀態(tài)

show slave status;

rs.status

創(chuàng)建庫

create database name;

無需單獨創(chuàng)建,直接use進去

創(chuàng)建表

create table tname(id int);

無需單獨創(chuàng)建,直接插入數(shù)據(jù)

刪除表

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/})

獲取表記錄數(shù)

select count(id) from tname;

db.tname.count()

獲取有條件

的記錄數(shù)

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 由于我內網(wǎng)環(huán)境,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的区别及部署的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。