我正在研究一個功能,並可以使用哪些數據庫來解決這個問題。哪個數據庫適合這份工作?
我們有一個使用MySQL的Rails應用程序。我們沒有MySQL的問題,它運行良好。但是對於一個新功能,我們正在決定是否保留MySQL。爲了簡化問題,我們假設有一個User
和Message
模型。用戶可以創建消息。該消息基於與海報的關聯被傳遞給其他用戶。
顯然有一種基於友誼的關聯,但根據用戶的個人資料,還有許多更多的關聯。我計劃存儲關於海報的一些元數據以及消息。這樣,我不必每次查詢消息時都要拉取元數據。
因此,消息可能是這樣的:
{
id: 1,
message: "Hi",
created_at: 1234567890,
metadata: {
user_id: 555,
category_1: null,
category_2: null,
category_3: null,
...
}
}
當我查詢的消息,我需要能夠基於零個或多個元數據屬性進行查詢。這個呼叫需要很快並且經常發生。
由於元數據屬性的數量和任何數量都可以包含在查詢中,所以在這裏創建SQL索引似乎不是一個好主意。
就我個人而言,我有MySQL和MongoDB的經驗。我已經開始研究Cassandra,HBase,Riak和CouchDB。我可以使用一些可能已經完成研究的人的幫助,以確定哪個數據庫適合我的任務。
是的,消息表可以很容易地增長到數百萬或行。
最好的部分是,我不必擔心元數據更改。一旦使用元數據創建了一條消息,它就會爲該消息設置一條消息。 –