2010-05-27 69 views
1

我有一個第三方應用程序擁有數百萬行和只有一個索引的MySQL表 - 每個條目的時間戳。現在我想對時間戳以外的數據使用字段進行一些繁重的自連接和查詢。對原始表執行查詢會使數據庫進行爬網,向表中添加索引不是一種選擇。另外,我只需要比一週更新的條目。複製表格中數據的「滑動窗口」的好策略?

我現在有效地進行查詢的策略是使用具有必要索引的單獨表(aux_table)。我的問題是:是否有另一種方法來執行查詢?如果不是,如何有效更新索引表中的數據?

更新aux_table到目前爲止,我已經找到了兩種方法:

  1. 截斷aux_table,並從原來的表中插入所需的數據。效率不高,因爲所有的指標都必須重新計算。
  2. 檢查aux_table中最大的時間戳,並從原始表中插入具有更大或相等時間戳的所有條目。偶爾會放棄較舊的條目。只有複製具有較大時間戳的條目纔會導致刪除條目(因爲具有相同時間戳的條目,這些條目在上次更新後已插入原始表中)。

回答

1

可能:

觸發添加到大表也自動插入到小桌子。

然後,您可以在任意時間將小桌子修剪到合適的時間範圍。

+0

謝謝,這正是我解決這個問題的方法。 – chiborg 2010-05-27 14:52:47