2010-01-08 63 views
1

我想知道是否有可能自動化或通過按鈕將mysql表信息從一個表移動到另一個表從第一個表中刪除它,並將其放在另一個表中?使用PHP。MYSQL移動信息與php

我的mysql表很大,向該表添加信息的頁面上有70個查詢,這會減慢頁面刷新時間。我需要在每天的特定時間將信息從第一張桌面移動到第二張桌面,以便這些查詢不必查看我所有的巨型27k排桌子。

這可能嗎?

此外,如果有人可以幫助我對這個頁面的評論,我將不勝感激。 link text

回答

1

PHP沒有一個持續運行的服務器,您可以安排後臺任務。

如果您有權訪問服務器,您可以設置一個cron作業(或windows下的計劃任務)來爲您運行PHP腳本。

或者(並不是很好),您可以將腳本放在網絡服務器上,並在適當的時候通過在瀏覽器中輸入URL手動調用它。

+2

+1 |但要小心這樣的面向公衆的腳本。 – Sampson 2010-01-08 14:37:20

1

一個27k的行表是小的通過SQL標準,只要它被正確索引。例如,如果您不關心昨天的數據,則可以添加索引日期列並使用WHERE myDate > NOW() - INTERVAL 1 DAY進行篩選,SQL將自動將查詢限制爲小於24小時的行。

+0

它看起來像我需要看看索引。謝謝。 – Eric 2010-01-08 14:58:39

0

27k不是很大的表,MySQL應該可以正常工作。你有所有必需的索引嗎?你在緩慢的查詢中使用了EXPLAIN嗎? 至於將數據從一個表移動到另一個表的問題 - 創建一個由CRON運行的php腳本,並逐一移動行。這裏有什麼問題?

1

我想知道是否有可能自動化或通過按鈕將mysql表信息從一個表移動到另一個表從第一個表中刪除它,並將它放在另一個表中?使用PHP。

可以開始從PHP,但你問什麼是有效的MySQL的域。

它可以在兩個語句來完成:

  1. 使用的INSERT INTO statement將行從舊錶複製到新的一個
  2. 刪除舊錶

我更傾向於將這是爲了一個事務和易於執行而存儲在一個存儲過程中(如果你想讓它由CRON/etc啓動),因爲調用一個或多個對象會更容易。