2012-01-19 110 views
1

我的應用程序寫入表core;這個名字是不可變的。它變得非常大(數百萬行),所以它的大小使INSERT進入的速度比他們需要的慢。我的解決方案是隻在core中保存一週的數據。所以我建立了一個表格core_archive,按照預定的時間間隔將一週以前的東西放入。如何解決外鍵約束問題以優化MySql表

按計劃間隔,腳本獲取core中的所有新值,對它們進行操作並將它們放入第三個表core_details。該架構是core_detailscore中的PK具有外鍵約束。

我的問題是,由於本外鍵約束(間core_detailcore),我不能core刪除任何行。所以我該怎麼做?

選項:

  1. 做一個ALTER TABLE在core_archive指向舊的外鍵約束。不過,這確實不應該,也許不能在大型生產數據庫上安全地完成。
  2. ? [我沒有其他可行的想法...任何想法StackO?]

回答

2

你必須創建一個core_details_archive表以及與歸檔的core_archive指向預定要進行歸檔的core行的行。根據您的數據結構,這種方法可能需要擴展到任意數量的表格。

+0

是的,到目前爲止,這似乎是唯一的選擇。感謝您的建議。 – kmarks2