-
什么時(shí)候分片:
? - 數(shù)據(jù)量過(guò)大,單機(jī)備份恢復(fù)過(guò)久
? - 副本集滿足不了高并發(fā)寫入 (一般情況下副本集夠用)
分片特點(diǎn):
? - 對(duì)應(yīng)用透明 ;數(shù)據(jù)自動(dòng)平衡 ;支持動(dòng)態(tài)擴(kuò)容
---------------------
后面詳細(xì)介紹了副本集合創(chuàng)建的命令,再 linux 下敲命令展示
查看全部 -
副本集架構(gòu):
Primary(主) -> Secondary(副) -> Arbiter(心跳,選舉) -> Primary
原理:主節(jié)點(diǎn)變化記錄在 uplog 中,更新到副節(jié)點(diǎn),由一個(gè)線程持續(xù)監(jiān)聽(tīng)
--------------
演示: use 副節(jié)點(diǎn)數(shù)據(jù)庫(kù)xx,看到里面沒(méi)有數(shù)據(jù)
use 主節(jié)點(diǎn),寫入數(shù)據(jù) ,再到副節(jié)點(diǎn)查詢??
在副節(jié)點(diǎn)查詢時(shí)要執(zhí)行 rs.secondaryok() 表示允許查詢副節(jié)點(diǎn)
再查副節(jié)點(diǎn)看到數(shù)據(jù)已經(jīng)寫入了
查看全部 -
mongodb 數(shù)據(jù)目錄:
?- 用linux 命令? ll 能看到 collection-*.wt? 能看到文檔文件
?- index-*.wt ?能看到索引文件??
?- sizeStorer.wt 為容量信息
JSON? k-v
BSON 類似 JSON 的緊湊型 JSON 二進(jìn)制?
(將元素長(zhǎng)度存儲(chǔ)在頭部,能加快檢索速度)
查看全部 -
演示了使用 go 語(yǔ)言進(jìn)行 crud 操作:
操作的的返回為兩個(gè)對(duì)象:結(jié)果對(duì)象,err對(duì)象
查看全部 -
使用 go 語(yǔ)言環(huán)境進(jìn)行 crud 操作
?1. 連接到要操作的庫(kù)和集合
? ?collection := client.Database("martin").Collection("insertonetest")
?2. 寫入數(shù)據(jù)
? ?insertOneResult ,err:=collection.InsertOne(ctx, bson.M{"name":"xx","gender":"1"})
? ?//返回的 err 表示是否成功
? ?//返回的?insertOneResult? 表示執(zhí)行結(jié)果
? ?
查看全部 -
用 go 語(yǔ)言操作 mongoDB?
1. 安裝 go 語(yǔ)言安裝包?
2. 安裝 編譯器 GoLand?
GOPROXY=https://guo?(國(guó)內(nèi)代理地址)
賦值:基本語(yǔ)法用 % 來(lái)代替變量值,輸出:Print Printf?Println
(后面寫了個(gè)利用 time.Sleep 實(shí)現(xiàn)倒計(jì)時(shí)的例子)
查看全部 -
db.setProfilingLevel(1,100)
1表示開(kāi)啟慢查詢, 100表示超過(guò)100為慢查詢
db.setProfilingLevel(0)? 關(guān)閉慢查詢
db.getProfilingLevel()? ?查看是否開(kāi)啟慢查詢 (1表示已開(kāi)啟,會(huì)將慢查詢語(yǔ)句寫入系統(tǒng))
造一條慢查詢語(yǔ)句:
? 1.先插入數(shù)據(jù) for(var i=1 ; i<=30000 ; i++)
? 2.再用 find 命令查詢靠后面幾位的數(shù)據(jù)
執(zhí)行:? db.system.profile.find()? 可以看到已經(jīng)記錄到慢查詢里的語(yǔ)句
查看全部 -
查看執(zhí)行計(jì)劃? .explain(true)
在顯示的 json 中看字段:
"executionStats"
? ? ?"executionTimeMillis" :? x(掃描毫秒數(shù))
? ? ?"totalDocsExamined"? :? x(掃描文檔數(shù))
查看全部 -
創(chuàng)建索引 createIndex()? 分升序索引和降序索引
默認(rèn)創(chuàng)建 b+樹索引, 創(chuàng)建全文索引(text)
創(chuàng)建哈希索引({"name":"text"}) 不支持范圍和多鍵
創(chuàng)建地理位置索引 2d? ?createIndex({"xx":"2d"})
查詢操作,用到地理位置索引?
{$geoWithin: {$box :[[10,10],[20,20]] }}
查看全部 -
查詢升序? ?find().sort({"age":1})
查詢降序??find().sort({"age":-1})
求平均值??
aggregate ([{'$group' : {_id:'$class', 'avg_score': {'$avg' : '$score'} }} ])
查看全部 -
創(chuàng)建集合 createCollection?
查看集合 show tables
插入數(shù)據(jù) save 或 insert??
插入多行 insertMany
直接查詢 find? (默認(rèn)20條,輸入 it 翻頁(yè))
條件查詢 find({name:'xx'})?
刪除查詢 remove({name:'xx'})??
條件查詢?find({age: {$gt: 10}})?
條件查詢?find({$or:[{"age":10} ,{"name","wang"} ] })?
查看全部 -
無(wú)密碼連接 直接輸入 mongo ,有密碼連接(先設(shè)置用戶密碼,重啟mongo);
選擇數(shù)據(jù)庫(kù), insert數(shù)據(jù),刪除數(shù)據(jù)庫(kù);
創(chuàng)建普通用戶(只能修改查詢)
----------------------
客戶端工具:compass? (我之前用的NoSQL Manager for MongoDB)
查看全部 -
database? 數(shù)據(jù)庫(kù)(每個(gè)數(shù)據(jù)庫(kù)自己的集合權(quán)限,每個(gè)數(shù)據(jù)庫(kù)存儲(chǔ)在不同的文件)
collection 相當(dāng)于表 (同一個(gè)集合里可以插入不同結(jié)構(gòu)不同類型的數(shù)據(jù))
document 相當(dāng)于行(鍵值對(duì),bson ,區(qū)分大小寫,不能重復(fù))
field?
index? 索引
primary key ( _id 自動(dòng)生成 )
查看全部 -
在linux 上安裝 mongodb
查看全部 -
適用場(chǎng)景:游戲,物流,社交? (半結(jié)構(gòu)化的多變的數(shù)據(jù))
(中間部分報(bào)了一堆公司名稱)
技術(shù)場(chǎng)景:?jiǎn)伪頂?shù)據(jù)上億,數(shù)據(jù)模型多變,地理位置
查看全部 -
文檔數(shù)據(jù)庫(kù) ( BSON 格式存儲(chǔ)文檔,二進(jìn)制json )
高性能:熱數(shù)據(jù)都在內(nèi)存
高可用:副本集,分片集群
常用架構(gòu):?jiǎn)螌?shí)例,副本集(一主一從),分片
查看全部 -
已讀:列出大綱
查看全部 -
已讀,解釋什么叫數(shù)據(jù)庫(kù)
查看全部 -
省流筆記:
1.身份認(rèn)證:配置不同的用戶、設(shè)置復(fù)雜密碼
2.權(quán)限控制:不同用戶配置不同的權(quán)限、權(quán)限最小化
3.網(wǎng)絡(luò)隔離:MongoDB不開(kāi)放外網(wǎng)、防火墻設(shè)置訪問(wèn)白名單查看全部 -
mongodb創(chuàng)建用戶名密碼
查看全部
舉報(bào)