2016-11-30 16 views
0

我有一個數據庫,大多數表都以某種方式連接。 它由超過500000條記錄組成。 我需要實施實時搜索,但記錄數困擾我。將單個數據庫分爲活動和歸檔

數據庫將增長和生活在數百萬記錄搜索將肯定會導致問題。所以我需要將舊記錄(讓我們假設日期字段存在)移動到另一個數據庫,並且只保留新記錄用於搜索。

舊的記錄將不會再使用,這是肯定的,但我仍然需要保留它們。

任何想法如何可以在MySQL中實現?

+0

根據我的經驗,這通常是一個壞主意;適當的索引和搜索標準應該縮小搜索到的記錄的範圍,以便記錄數量(極端情況除外)不應該成爲一個重要因素。這可能並不是一個壞主意,除非_「舊的記錄將不再被使用」_幾乎總是在_「但我仍然需要保留它們」時被證明是虛假的;然後你最終不得不搜索兩個(或更多)地方。 – Uueerdo

+0

@Uueerdo,_「但我仍然需要保持他們」_意爲萬一訴訟。其他任何東西都不需要它們。 –

回答

1

500,000條記錄確實不是很多記錄。

你開始採取嚴厲的措施(如限制用戶能夠無縫地同時看到所有的數據的能力)之前,您應該考慮提高性能的基礎知識:

  • 指標,以提高標準的查詢性能。
  • 分區以限制需要訪問的表的部分。
  • 全文索引可改進match()查詢。
  • SQL查詢的優化。

一般來說,這些對於數量級比您正在處理的數量級要大的數據庫就足夠了。

這些可能不適用於您的特定情況;但是在更改物理數據模型之前,您應該儘量減少性能優化,以避免可能永遠不會發生的問題。

+0

我不確定數據庫服務器是否可以在實時搜索時使用它,它的計算能力非常有限。 –

相關問題