簡體   English   中英

我應該使用NoSQL而不是MySQL嗎?

[英]Should I use NoSQL instead of MySQL?

我正在使用PHP開發Web應用程序。 我用MySQL作為我的RDMS。 對於RDMS工作的許多事情,許多問題可以通過規范化等解決。 但有些情況對RDMS不起作用,因此設計了其他解決方案,如NoSQL。

我不清楚的是NoSQL哪種情況更合適。 一些不同的NoSQL選項有何不同,哪種情況可能比另一種更好,哪些與PHP 5.3或更高版本兼容(API明智)?

所以我正在尋找一個我可以使用的NoSQL服務器軟件列表(例如MySQL作為RDMS)以及為什么我會使用其中一個(任何混合動力車?)。 還有使用NoSQL而不是RDMS解決的問題的具體示例。

最后,我想知道NoSQL服務器在這種情況下是否會更好地工作:

一個數據表,其中每行可以有不同的列/字段。 一行可能有5列,另一行可能有5列完全不同,另一行可能有10列。但是在所有這些行中,只有一個主要的自動遞增數字ID。 數以百萬計的“行”。

(正如上面我假設NoSQL是完美的,因為它是一個對象的集合,而不是表中的行。不確定AI主鍵)。

在RDMS中,您可以創建最常用的列,然后使用PHP的serialize / unserialize來存儲其他列。但是當您必須對此“序列化數組”中存在的列運行報告時,這非常低效且復雜化,例如,在名為“birthday_pledge”的列的所有行上的SUM(每行使用該行)。

在我的情況下,除主鍵之外的每個 “列”都是自定義和用戶定義的。 但我需要能夠在這些“列”上運行報告(總和,過濾器,搜索)。 因此,如果NoSQL不是解決方案,我唯一能想到的就是為用戶創建自定義表(雖然可能會變得復雜)。

我還想指出可擴展性(多個數據庫服務器,冗余和故障轉移)非常重要。

http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis

本文比較了大多數人口的nosql數據庫系統和theire pro / con。

希望它可以提供幫助。

PS:在我的想法中你正在尋找的是couchdb或mongodb,但我可能是錯的。

暫無
暫無

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

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