2010-08-22 37 views
1

我正在構建一個需要存儲和查詢大量時間戳數據的應用程序。具體而言,這是分析類型數據,其中特定的「集合」可以包含通過共享時間戳連接在一起的多達100個獨立的數據點。這些數據是靜態的,因爲它一旦存儲就永遠不會改變,但在數據庫被清除之前可能會被多次查詢(我們目前只存儲了12周的數據)。適用於大容量,靜態分析數據的最佳存儲引擎

目前,我們將這些數據存儲在MySQL中,每個表約有1億行(我們每天大約增加300萬行)。當僅通過時間戳存儲和查詢數據時,這沒什麼問題,但在執行帶有排序的SELECT時尤其是在試圖從表中刪除陳舊的舊數據時變得單調乏味。使用例如WHERE時間戳< $ 12weeksago的DELETE查詢通常需要幾個小時才能完成。

我們還想保留超過12週期間的一些數據,這會在另一列中爲DELETE添加另一個WHERE子句。這會進一步放慢速度。

根據這個用例,你會推薦什麼存儲引擎,同時考慮到大量的讀/寫和查詢需求?

回答

0

這一切都取決於你選擇的種類。如果一個NoSQL數據庫可以做到這一點,那麼這可能是你最好的猜測。

但是,我認爲你可以通過對數據庫進行分區來提高性能。由於它已經基於時間,所以您可以輕鬆地創建每天/每週/每月的分區,這樣您只需查詢與當前查詢相關的表即可。刪除舊數據是一個簡單的刪除表,而不是緩慢刪除。

0

嘗試使用Redis或MongoDB。它們都是爲這種用例而設計的。

相關問題