我有一個場景,我無法弄清楚正確處理的最佳方式。我有一個包含許多表格的mysql數據庫,用於存儲全球許多設備的配置信息。有一個腳本會頻繁運行,以查找更改,跟蹤狀態以及與這些設備相關的各種其他事情。處理不斷更新的mysql表的最佳方法
該數據驅動用於管理所述設備的前端應用程序。我的問題是我如何正確處理更新數據庫的時間。所以目前我將所有的數據寫入臨時表,然後在活動表中截斷/選擇*。
我知道這是非常可怕的,它會導致很多不同的問題,這是一個真正的痛苦。我確信必須有更好的方法,但我無法找到一個。任何人都可以提出一些更有效率的建議。這些表格相對較小,所以我可以通過上述方法脫身。 (每桌不到2k行)
如果我能弄清楚如何只更新已經改變的東西和任何新東西,那將是一件好事。我只是不知道如何擺動那一個。任何建議將不勝感激。
MySQL版本:MySQL的 14.14版DISTRIB 67年5月1日 的MyISAM(?大概也不應使用這個......)
有沒有一些方法,我可以嘗試使用這些方針時間戳或東西...
更新: 我沒有提供足夠的數據在這裏,所以我的錯。讓我試着給出一些更好的細節。
我有一個簡單的表,用於存儲領域,如:(大大簡化了這裏)
主機名,IP,狀態,政策,區位。
我有一個腳本每隔10分鐘運行一次,以捕獲所有這些以及更多內容以便轉儲到mysql中。問題是,當我截斷有時用戶可能正在嘗試使用前端應用程序,並且表尚未填充。我正試圖想出一個更好的方法來處理這個問題。
這裏有這麼一點點的信息,它不清楚你問什麼。請分享一些代碼,架構和數據示例。 – sjagr 2014-12-04 18:34:26
我正在尋找一個關於如何處理更新表的建議,當數據可能沒有改變,但同時插入新的數據。因此,不要找人給我代碼示例,更多的只是一個想法....爲了簡單起見,讓我嘗試以此爲例。我有一個表存儲狀態,IP,主機名和策略字段。領域政策或國家可隨時更改,需要在變更時處理。 – user1499 2014-12-04 18:38:12
這似乎不是一個SQL/mySQL問題,實際上也沒有任何特定於PHP的東西。問題似乎是關於前端應用程序知道應用哪些更改。如果知道的話,它可以在主表上執行適當的'INSERT'和'UPDATE'語句。在'UPDATE'的情況下,只更新所有非PK列是可以的。 – 2014-12-04 18:38:19