MongoDB係咪可以取代Mysql?

我知道這兩款db不是互相取代的存在, 所以不用再重復
https://yq.aliyun.com/articles/707175

一般講法都係話應該睇返你使用場景來決定用邊個

但係實際上我相信大多數既project都只係一些好general既project
所以我覺得依類project應該唔會咁極端話用某一種會明顯有優勢

如果係一般情況, MongoDB係咪可以完全取代Mysql?
理由如下

MongoDB一樣有FK, 而且比MySQL多左個彈性可以成個object embed落FK, 也可以好似Mysql咁只save reference
而且MongoDB無schema, table column可以不固定, 遇到兩種非常相似既data就可以唔洗分兩個table, 又或者加一大堆null column

照咁睇MongoDB係非極端既情況下好似Mysql喎
有無人持有反對/支持既意見?

不能, 因為係兩類型的database,
用MongoDB 定Mysql要睇requirement, 有d 系統同一時間會兩種用哂.

我知道這兩款db不是互相取代的存在, 所以不用再重復


一般講法都係話應該睇返你使用場景來決定用邊個

但 ...
3ldk 發表於 2019-10-24 16:30

TOP

用到唔代表效能好

TOP

如果要同時享受SQL和NoSQL的好處,可使用Postgresql。

TOP

本帖最後由 hihihi123hk 於 2019-10-25 07:23 編輯
我知道這兩款db不是互相取代的存在, 所以不用再重復


一般講法都係話應該睇返你使用場景來決定用邊個

但 ...
3ldk 發表於 2019-10-24 16:30

NoSQL 喺 Typed Language 用法中,最頭痛就係 Serialization 同埋實踐 "Application Schema"

當然 SQL 都會煩 Serialization 啦,不過因為有 Schema 情況下,可能做到 Codegen Models / 直頭用 ORM 解決

而自己試過 Kotlin 配合 MongoDB 配合 Google Protocol Buffer 完美解決哂上述困難,簡直係天堂 但要夾得埋呢三樣野要有番啲功力

另外,自從 MongoDb 4.0 開始有 Transaction 做到 Strong consistency 之後,大部份情況下都可以完全取代到 SQL,可惜有信譽嘅 Managed MongoDB 比較少選擇,唔想自己 Maintain Database 嘅人只可以硬食 Mongo Atlas

去到最後,由於 MongoDB 同一般SQL 無論係設計及 Application Coding 上都有極大不同,最後會演變成「識用所以用」而唔係「適合所以用」,主因通常係起 Proj 前或有空檔時連基本 R&D 都唔會掂下,永遠停留係唔識嘅狀態

等如啲人拎 MySQL 儲 JSON 都唔用 PostgreSQL Jsonb 一樣,就係因為「唔識」(講緊新 Proj )

via HKEPC IR Extreme 4.2.3 - iOS(4.0.2)

TOP

如果要同時享受SQL和NoSQL的好處,可使用Postgresql。
daemongmong 發表於 2019-10-24 10:56 PM

Any example pls?

TOP

Any example pls?
清仔 發表於 2019-11-29 16:31



   可以成個JSON object 放入去 table個 filed 入面, 再用select query search 入面既data.

https://www.compose.com/articles ... type-in-postgresql/

TOP

回覆 7# wongspace
wowowowowowowowow, thx!!!

TOP

NoSQL 喺 Typed Language 用法中,最頭痛就係 Serialization 同埋實踐 "Application Schema"

當然 SQL  ...
hihihi123hk 發表於 2019-10-24 23:14



你用Google Protocol Buffer係為左Codegen Models比orm用? 得嗎? 未見過有orm support 用Google Protocol Buffer gen model
有我都想知, 因為我都搵define一次, 任何orm都用到既方法

TOP

本帖最後由 hihihi123hk 於 2019-12-7 09:49 編輯
你用Google Protocol Buffer係為左Codegen Models比orm用? 得嗎? 未見過有orm support 用Google Protoco ...
3ldk 發表於 2019-12-6 12:37

Protobuf 係一個有非常豐富 Data Structure 嘅 Schema 而且 Performance 非常好。非常適合作為做 NoSQL  'Application Schema'

以 Java + MongoDB 為例,Google 有 protobuf plugin (Protobuf schema -> Java Class)
而 MongoDB 儲 BSON

而你講緊嘅就係 Serialization, (BSON -> Java Class),  (Java Class -> BSON);情況好似 (JSON -> Java Class), (Java Class -> JSON)

係 Java 玩 JSON,你會用 Jackson / GSON 嘅 Library 做

係 Java MongoDB Client 可以自己寫 Custom Codec 做 Serialization, 只要加入對應 Codec,係 MongoDB Client 一拎出黎就係 Java Protobuf Class

喺 Google Search 'protobuf bson github' 就會搵到對應 Library 做呢個 Codec

任何 Static Typed Language 只要 Implement 番 (BSON -> ? Language Class) (? Language Class -> BSON) 就會用得番

TOP