2015-09-16 66 views
-1

我有一些數據庫裏面坐了大數據,現在我在想如何組織他們更scallable。如何在數據庫中組織大數據?

一些點作爲我的考慮是:

  1. 安全
  2. 性能
  3. 成本

一般回答是值得歡迎的,因爲我還沒有我期望我的所有問題或可能性風險會發生,如果你能給我一些建議,它會幫助我。

+0

從我所瞭解的你的數據庫中有一個很大的流量,加上大量的數據處理,我假設你只使用普通的機器筆記本電腦,或普通的PC,如果你需要的話購買能夠處理所有數據的最強機器。作爲一個優化問題,您可以使用視圖和分頁(在您的應用程序中) –

回答

2

作出全面的回答你的問題,我們需要對數據有多大,多麼複雜,你的用例是什麼(即你做很多連接多個表或者是他們大多是在一個單一的更多信息表?)。無論如何,這裏有一些可以幫助你前進的好的指針。

  1. 如果您希望您的數據快速增長,我建議您查看基於雲的數據庫解決方案,而不是投資於需要經常更換的物理硬件。基於雲的解決方案爲您提供更大的自由度來縱向和橫向擴展您的數據庫。有專門的雲數據庫技術,如亞馬遜RedShift和最近推出Aurora,可隨着您的需求增長輕鬆配置。
  2. 對於數據庫的性能改進,您可以隨時看的結構指標和變化。在MySQL中使用explain語法來分析您的查詢,並查看查詢是否使用會減慢速度的臨時表或數據掃描。將索引添加到用於過濾或合併數據的列中會大大提高性能。
  3. 在數據倉庫中,你也denormalize,可以預先連接表來提高性能。雖然這將大大增加您的存儲使用量,因爲您只使用一個數據表提高了性能,因爲重複執行連接所需的時間已從等式中移除。
  4. 如果您正在尋找在大規模數據集,將在結構和複雜性的增加,還有其他非關係型數據庫技術,如基於noSQLHadoopCassandra等移動到這些環境可能需要你重寫大部分應用程序的,但是在數據變得太大時發現自己需要這種事情之前,你應該考慮的事情。

EDIT

如在下面的評論所指出@表示Tahali
  • 隱私和數據安全性。如果出於法律或安全原因您無法將數據託管到外部,則需要投資自己的硬件,以解決上述所有內部問題。
  • +1

    這也是一個有效的選項,儘管以我自己的觀點來看,我更喜歡擁有運行我的服務的機器,特別是當數據類型具有某種隱私並且在任何情況下都具有0%的泄漏容限時,我在整個「互聯網」中指出,物理服務器在這方面具有優勢,您可以運行它而無需一個外部網絡,你將能夠正確地使用你需要的東西,另一方面,正如你所說,這將花費更多。 –

    +0

    @rasika謝謝你的回答,你現在給我點亮了一下,關於多少細節,我的大數據複雜還沒有解釋,因爲我只是準備了那個可能性風險和麻煩。 – viyancs