2012-12-27 65 views
2

我正在編寫一個需要處理超過15000張照片的應用程序,並且我想將它們的EXIF和IPTC屬性存儲到數據庫中。在數據庫中存儲大量的EXIF和IPTC屬性

我最初的做法是使用MySQL並創建一個表來存儲所有屬性,因爲它建議使用here

但是大多數照片最多有250個屬性。由於我得到了15k張照片,這意味着我將幾乎有4百萬行。這只是開始(我預計未來會有更多照片)。

我想知道在這種情況下MySQL是否會好起來,或者我應該轉向像MongoDB這樣的NoSQL方法。

另請注意,我需要使數據庫可搜索。

在此先感謝。

+2

在某些情況下,4百萬行不算大。您尚未指定您的硬件規格或延遲要求(過夜批量與即時滿足)。你有沒有考慮過你是否真的需要每一個屬性?你有一臺數據庫機器來建立一個測試數據庫並進行性能測試嗎? – patrickmdnet

+0

恐怕我還沒有機器規格。是的,我想要所有的屬性。我不是數據庫專家,但對於一個簡單的應用程序來說,我認爲有大量的數據是4百萬行 - 不是嗎? –

+0

如果您需要所有數據,則不需要。 –

回答

1

如果您是.Net開發人員,RavenDB非常適合您的情況。它可以在非常適中的硬件上輕鬆處理該音量,並且具有由Lucene搜索引擎內部使用提供的出色搜索功能。

照片本身將被存儲爲attachments,而屬性將成爲文檔的一部分。

即使你不是.Net開發者,RavenDB也可以使用任何語言的http/rest以上。使用本地.Net客戶端要容易得多。

+0

你是否推薦RavenDB,因爲它是一個面向文檔的數據庫?什麼排除了使用普通的SQL數據庫? –

+0

1)體積 - 烏鴉可以在沒有昂貴的硬件的情況下擴展到這個尺寸。 2)搜索 - 對任何屬性進行穩健的全文搜索,包括部分字符串匹配,建議的搜索結果,非常類似谷歌的搜索功能。3)OP期望定期拍攝更多照片。在寫入期間更新索引時SQL塊讀取。 Raven在後臺編制索引,優化快速讀取。 4)我有偏見。蒙戈或沙發也可以。我喜歡Raven。 :) –

+0

其實我是一個Rails開發人員。你認爲Mongo會像Raven一樣工作嗎? –

相關問題