2021/11/24

你一定要知道的 MongoDB 基礎



你一定要知道的 MongoDB 基礎
張冠群 Caspar Chang / MongoDB 北亞區高級解決方案架構師

https://webinar.ithome.com.tw/review.html?v=1633057727 歷次簡報整理得不錯耶


A Aries: MS SQL 移轉MongoDB 相關指令是否有差異?
 傲嬌姐姐: 我想請問:Mango DB現在還是只能在64位的服務器上單獨執行嗎?有沒有新的處理方式?
Y YFC: 請問, 任何資料庫是否都適合平行移轉至MongoDB 上
J John: 請教MongoDB於指令設計上,與其他競爭對手有何差異與優勢?

M MongoDB 技術顧問 @Aries : MongoDB 主要使用 MQL, 與SQL略有不同, 詳情可以參考 https://docs.mongodb.com/manual/reference/sql-comparison/
M MongoDB 技術顧問 @傲嬌姐姐 MongoDB 主要支援 64but 為主, 但虛擬機 容器化 都能夠支援 https://docs.mongodb.com/manual/installation/
S Stone: 效能會比關聯式DB差嗎?
Q Q: 想請問 MySQL 跟 Postgresql 所支援 json type 與 MongoDB 有使用的差異嗎?
 傲嬌姐姐: @MongoDB 技術顧問 感謝告知,立馬筆記
M MongoDB 技術顧問 @YFC 異質資料庫的移轉, 過往的經驗來看 只要不要有太多 procedure 作為包袱,整體來說不難 但還是需要一些功
A Aaron: 正規畫與非正規劃有何差異?
A Aaron: 設好後可以再變更嗎
i iThome小編 @aw:每日準時上線連續超過 45 分鐘,前 150 名即可獲得哦~
g guest: mongodb是否也可建立unique的index?
M MongoDB 技術顧問 @John : MDB 的指令 類似物件導向,正如現在所說明的, JavaScript Like 的語法, 對開發人員非常直覺好用
W Winnie: 如果mongoDB的欄位彈性那麼大,那定義好的column可以再調整資料格式嗎?
M Marvin: mongoDB 主要的語言是Python?
M MongoDB 技術顧問 @Stone : 一般來說 MDB 的效能 會比 RDB 好上一些,尤其資料量越大,效能差距越明顯
J John: Query Speed compared to RDBMS?
A Antonio: MongoDB用了就回不去了
 傲嬌姐姐: 再請問Mango DB 因為在Linux系統某些授權上的變更,Debian、Fedora、Red Hat Enterprise Linux這些目前都已經從Linux套件正式移除掉了嗎?感謝回覆
A AB: 只有今天第一次參加,也可以參加填問券送書活動嗎?
E Eric Lin: MongoDB都講優點部分 那缺點有那些?
D DD: Mongo DB Driver 是JDBC format ?
T Ta-Ju: @MongoDB 技術顧問 請問巢狀結構的搜尋會不會影響到效能
M MongoDB 技術顧問 Q : MySQL 跟 Postgresql 的 JSON type, 在使用上沒有MDB的直覺與方便, 同樣的功能可能要透過複雜的語法才能實現, 以及在 nest 階層下查詢的不方便, 所以建議 RDB還是做row column mode比較好
Q Q: 了解,謝謝,請問今天投影片會分享嗎?
i iThome小編 @Q:影片回放會透過MongoDB郵件發出,再煩請留意信件唷。
M MongoDB 技術顧問 @Aaron : 資料庫正規化 只是資料關聯的設計法則, 避免資料冗於, 多年來關聯式資料庫都建議要用, 時至今日已經是一種標準, 但是隨著數位轉型的發展, 越來越多應用需要的其實是 部分反正規化的設計, 達到應用快速開發,資料快速讀寫
M MongoDB 技術顧問 @guest : MongoDB 可以做 Unique Index
M MongoDB 技術顧問 @Winnie : 資料格式在 MDB 裡面是很彈性的存在,可以隨時按照使用需求調整的
i iThome小編 @AB:可以的,議程結束後會提供問券連結,完整填寫就有機會獲得MongoDB 最新書籍。數量有限,先搶先贏!
Y YFC: MongoDB 在異質資料庫的移轉上, 成功的機率有多少? 資料量最大容量是多少?
M MongoDB 技術顧問 @Marvin : MongoDB 是JSON資料格式, 最契合的應用程式就是 JS, 不過其他例如 C, Java, Python 都有支援, 如同畫面所說明 https://docs.mongodb.com/drivers/
k ken.young: 請問在 MongoDB 中,集合只有在內容插入後才會建立嗎? 是不是建立集合(資料表)後還要再插入一個文件(記錄),集合才會真正建立?
g guest: mongodb是否也有transaction的機制?
e ess: RDBMS可以用constraints或datatype提升效能, 請問MangoDB判別效能的依據是?
M MongoDB 技術顧問 @John : MongoDB 的讀寫效能可以參考 以下網站, 針對每秒上萬的讀寫, 平均交易時間50ms 都能夠輕鬆做到 https://www.mongodb.com/mongodb-scale
J John: Thanks
 傲嬌姐姐: 目前Mango DB支援的監控外掛程式有哪些?
Q Q: 想再問一下,如果要做 fulltext search, MDB 有推薦參考的應用方式嗎
M MongoDB 技術顧問 @ 傲嬌姐姐 : MDB 只是因為改變了 License Term 為 SSPL, 本質上依然是 open source 資料庫軟體, 只是因此沒有內建在OS的repo中, 但一樣
M MongoDB 技術顧問 可以下載使用
p peter: 請問Secondary可以拿來做讀取用途嗎?比如報表查詢
g guest: mongodb適合存像訂單的資料嗎? 適合用高可用模式嗎?
 傲嬌姐姐: @MongoDB 技術顧問 了解,個人詢問的問題比較多,尚祈海涵
M MongoDB 技術顧問 @YFC:MDB 的最大容量可以參考 https://www.mongodb.com/mongodb-scale, 例如百度雲網盤 背後就是使用 MDB, 存了 200 billion 就是透過現在正在說明 的sharding機制做到水平擴充存放大量資料
M MongoDB 技術顧問 @ken.young : 可以透過 createCollection 指令建立集合, 也可以透過直接 insertData 來建立集合
a aw: 請問有建議Mongos 和shard的比例大約多少最佳嗎? 一個Mongos配幾組
M MongoDB 技術顧問 @guest : MDB 有 transaction 機制, 適合做為網購訂單服務, 台灣有許多客戶都使用來做交易與帳務服務
A Alex Wu: MongoDB分佈式存儲可以跨廣域
A Alex Wu: MongoDB分佈式存儲可以跨廣域網路嗎?
k ken.young: @MongoDB 技術顧問 感謝專業回覆

M MongoDB 技術顧問 @ess : MDB 裡面判別效能 很簡單就是有沒有使用到 Index, 查詢是走 Index Scane 或是 Collection Scan, 我們晚點也會介紹如何使用 Explain 工具來做效能檢驗與提升
S Stone: 有醫療業使用嗎?
g guest: 有銀行業使用mongodb嗎?
M MongoDB 技術顧問 @傲嬌姐姐 : MDB 官方有自己的監控工具, 第三方的也可以參考 Grafana 等
M MongoDB 技術顧問 @peter : Secondary 可以用來做 readonly 的, 非常適合做報表!

M MongoDB 技術顧問 @aw : 通常我ˋ會建議 一個 shard 要配 兩個 mongoS, 也就是兩個分片要有3~4個mongoS, 不過由於 mongoS消耗不大, 多建立幾個問題也不大
y yc: MDB 是否能夠支援欄位加解密的機制?
Y YFC: MDB資料量過大時,可以分切資料做分流管理嗎
M MongoDB 技術顧問 @Alex Wu : 可以的, MDB 分佈式存儲可以跨廣域網路, 要注意頻寬與延遲 不要太差就好
M Ming: MongoDB可以和關聯式資料庫共同存在,使用嗎
M MongoDB 技術顧問 @ Stone : 關於醫療業有的, 您可以參考 使用 NoSQL MongoDB 重建 HIS 系統的文章 https://www.cio.com.tw/refactoring-the-his-database-with-nosql-medium/
M Mars: 想請教MongoDB是否支援多欄位GROUP BY計算?例如select a, b, sum(c) from table group by a,b
M MongoDB 技術顧問 @ guest : 有的, 銀行產業的相關案例很多, 有帳務查詢, 交易系統, 聊天機器人, 資料科學貼標, 以及數據中台
M MongoDB 技術顧問 以上說的是台灣客戶
J Jim: 免費的 Mongodb Atlas 有什麼限制呢?
M MongoDB 技術顧問 @yc : MDB 支援的是自動加解密機制, 包含 網路層, 儲存層, 與欄位層
M MongoDB 技術顧問 @YFC : 大量資料在MDB就是做分片 (Sharding)


M MongoDB 技術顧問 @Ming : 目前大部分客戶都是混用 RDB與MDB, 看情境來做選擇
Q Q: 想請問如果 MDB 要做全文檢索,有推薦的方式嗎?


M MongoDB 技術顧問 @ Mars : MongoDB 可以做 Group By, 使用 Aggregation 的語法, 可以參考: https://docs.mongodb.com/manual/reference/sql-aggregation-comparison/
W Winston: 請問如何移轉 RDBMS Based 的 AP 到 MDB?
M MongoDB 技術顧問 @Jim : 免費的 Atlas 使用的是 shared CPU, Memory 跟 只有512MB的DISK
J Jim: 512MB的DISK 超過會收費嗎? 還是無法超出?
M MongoDB 技術顧問 Q : MongoDB Atlas 提供 Atlas Search 的全文檢索機制, 把 Apache Lucene 的功能內建在 Atlas 裡面, 而且也是免費使用 https://www.mongodb.com/atlas/search
T Ta-Ju: @MongoDB 技術顧問 請問MongoDB在一個documen有metadata對metadata下搜尋條件會不會影響到效能

M MongoDB 技術顧問 @Winston : 從 RDB 轉移到 MDB, 如果沒有 procedure 整體來說不難, 因為application 的 framework 通常都包住了 DAO 層, 後端都使用 ORM/ODM. 但是好處是 MDB 可以提供更方便的開發過程與更好的效能
W Winnie: 如果採用cloud版本的mongoDB,那用程式做query的時候跟local端的差異在哪??
Q Q: 想請問如果不使用 MongoDB Atlas ,而是使用自己的伺服器架設,就無法使用如同 Atlas 所附的 Apache Lucene,而是要自己去建立嗎?
M MongoDB 技術顧問 @ Jim : 無法超過512MB, 資料無法在寫入, 除非升級付費版, 免費版是永久免費使用
M MongoDB 技術顧問 @Ta-Ju : 所有的查詢 如同現在說明的 只要有index 效能就會很好, sub document 一樣可以建立index
W Winston: MDB 會有 dead lock or starvation 嗎?

M MongoDB 技術顧問 @Winnie : Cloud 版本的 Atlas 與開源的版本 MongoDB 是 一樣的, 差別在一個由mongodb維運,一個自己維運,但使用上是一樣的

W Wade: 加index之後大量數據會有跟RDB一樣的效能陷阱嗎
M MongoDB 技術顧問 @Q : 對的, 只有雲端版本 才有 Apache Lucene Search, 地端的版本只有舊版的 text search 功能比較受限
M MongoDB 技術顧問 @Wade : MDB 裡面大量數據就用分片走水平擴充~ 不會有效能瓶頸
T Tiffany: 謝謝MongoDB今天的實作分享
M MongoDB 技術顧問 @Winston : MDB 走的是樂觀鎖, 所以機制與RDB不太一樣, 簡單說不會, 要解釋需要額外的做詳細的說明!
T TLK: DATA如果過去是以file方式存放,如何轉入MongoDB?
W Wade: 添加資料時不會有檢查index 唯一性的成本嗎
i iThome小編 今日簡報下載 https://webinar.ithome.com.tw/review.html?v=1633057727
M MongoDB 技術顧問 @TLK : 使用 GridFS, 類似RDB的LOB機制
M MongoDB 技術顧問 @Wade : 檢查機制在記憶體內, 5.0有針對此檢查機制再調優 避免額外成本