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