2014-12-19 93 views
-2

我想創建一個移動應用程序,需要每分鐘發送數據到後端服務器與MySQL數據庫。MySql數據庫的大量數據

所以,如果我有一天工作將在8小時10個000用戶:

60要求*8小時* 30天* = 172800 reuqest每年12個月爲一個用戶。

10個000用戶* 172800 = 1 728 000 000

,這是我想了很多關於MySQL數據庫的數據,所以你有什麼建議?我需要使用什麼?哪種數據庫? NoSql或MySQL可以處理這個?

+3

我認爲是一個移動應用程序的很多要求! – dario

+0

你要存儲什麼樣的數據? –

+0

但我只需要發送lat,longitde數據和currenct時間... – LaraBeginer

回答

3

這太長了評論。

如果您每分鐘有10,000個用戶數據,那麼每秒鐘的插入次數爲10,000/60〜200。這是一個很大的負擔,但並非不合理。然而,它確實帶來了很多問題,如:

  • 該數據將如何使用?
  • 什麼是您的備份策略?
  • 需要多少歷史記錄?
  • 你如何管理網絡帶寬?
  • 什麼是峯值插入率?
  • 數據需要多快?
  • 遵守ACI有多重要?

這些問題的答案應該有助於您確定最佳數據源。 MySQL和鍵值非SQL數據庫都可以應對這一挑戰。 MySQL數據庫每年可以處理數十億行。典型的非SQL數據庫(MongoDB,Dynamo DB等)也可以處理這個數據量。

+0

1.我只需要發送用戶位置(座標) – LaraBeginer

+0

,就像每個應用程序那樣( fitBit,跟蹤用戶活動等健康應用程序的每個應用程序) – LaraBeginer

+0

@LaraBeginer爲什麼不使用某種數據流服務來發送座標? –

2

MySQL可以處理這個,沒問題。第二個問題你需要問自己,如果你的服務器可以處理10K請求一分鐘(也許你正在分享它)。

你應該嘗試每秒或每分鐘計數請求,每年有點含糊不清。因此,說1請求用戶每用戶10K用戶是足夠的信息。 它很多,但可以。

如果您需要我將調整性能的數據。

例如,如果您不介意延遲1小時:在您的手機數據庫中每分鐘註冊一次數據,只能每小時發送一次數據並將其作爲批量插入MySQL中。 這是請求和插入查詢的1/60。 這對您的服務器負載以及用戶體驗(即耗盡電池壽命)很有幫助。

+0

我完全同意本地存儲,但是如果用戶註銷應用程序,處理localstorage會怎麼樣? –

+0

我看到類似的應用程序,與更多的用戶,等fitbit和類似的健康應用程序跟蹤每秒,步驟和類似的用戶位置... – LaraBeginer

+0

移動應用程序可以有後臺服務運行誰繼續做你想做的事情,例如發送每小時收集的數據。這取決於你想發送數據的時間,如果你收集數據併發送它,而應用程序甚至沒有打開,用戶需要知道。例如,您可以在用戶登錄時收集數據,並在用戶註銷時停止收集數據。發送部分完全由您的服務異步完成。 – Timmetje