2016-07-18 39 views
4

我有許多行數很多的表,其中一些表接近一百萬。有一些後臺任務可以訪問這些表中最近的一些記錄。由於日益增加的規模,任務需要花費更長時間才能完成。此外,在前端顯示數據時,對服務器的呼叫也需要很長時間。克隆對象並保存在不同的表中

因此,我認爲最好是創建一個這樣的表的副本(作爲一個檔案)並且保存這些'檔案'表中的數據(以備將來使用)。這個想法是,無論何時一個記錄被完全處理,它將被從「實時」表中刪除並存儲在「歸檔」表中。

PHP克隆不起作用,因爲它創建一個與原始完全相同的實體。 一個確定的方法是遵循完全相同的步驟來創建實體,並始終同時繼續修改。

有沒有更好的方法來做到這一點?

+1

您應該分析您的數據庫查詢(如果您使用的是mysql,請參閱EXPLAIN)以查看您是否正確使用索引;記錄的數量並不是那麼特別。 – jeroen

回答

0

你在找什麼是「分區」。 MySQL和Postgres都有一些強大的手冊。

也許最好的實現方法是使用一個守護進程腳本,每隔X次運行一次分區查詢。