簡體   English   中英

MySQL與NoSQL:存儲板和圖像元

[英]MySQL vs NoSQL: storing boards and image meta

我正在建立一個類似Pinterest的網站,我需要將相冊及其相關照片存儲在數據庫中,因此每個用戶的 相冊都具有Photos ,每個照片都有Pins

由於數據是平坦的,並且不需要復雜的關系,因此我考慮將信息存儲在NoSQL數據庫(例如MongoDB)中,因此主要文檔是相冊,並且每個相冊都包含照片的對象(列表)。

但是,我不確定這是否是一個好的體系結構,因為無論是否包含相冊,我都需要按標題/說明/用戶快速查詢照片。 我應該改為使用關系數據庫嗎? 還是可以在NoSql數據庫中實現高性能?

每個NoSQL數據庫都解決了一個給定的問題:性能,彈性,可擴展性……但這通常要付出一定的代價,具體取決於數據庫的類型:無事務或事務有限,查詢能力有限……如果您選擇NoSQL數據庫,選擇它是因為它可以有效解決您遇到的問題。 否則,最好堅持使用關系,以避免NoSQL數據庫的局限性

編輯如果性能是您最關心的問題,請查看此問題

在某些情況下應該使用NoSQL,在某些情況下一定不要使用NoSQL。 如果您的應用程序需要處理高級別的事務,那么NoSQL並不是一個安全的選擇,因為您會錯過關系數據庫提供的事務保護。

話雖這么說,MongoDB特別適合您的用例,因為MongoDB提供了不同於其他NoSQL的多種查詢選項。 您需要做的就是使用經過深思熟慮的(嵌入式)結構,並在要查詢的字段上提供適當的索引。 也許您需要事先記住多鍵索引和復合索引。

從理論上講,MongoDB應該提供無縫的可伸縮性。 免費的無模式數據庫使您可以輕松添加新功能或增強功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM