存在性能問題,我堅持使用基於PHP & MySql的應用程序。該應用程序用於數據遷移,其中必須上載數據並且在各種過程(從外來字符清除,重複檢查,ID生成)之後,必須將其插入到一箇中央表格中,然後插入到5個不同的表格中。在那裏,生成一個id並且該id必須更新到中央表。 有不同的記錄和驗證規則集。我面臨的問題是,當我插入說(4K)行文件(包含20列),它在15分鐘內工作正常,它插入到處。但是,當我再次插入相同的記錄時,此時需要一個小時才能插入(理想情況下,它應通過將較早插入的數據標記爲重複項來插入)。 通過日誌文件後,我注意到有一個Mysql select語句,我正在檢查重複項並獲取重複項的ID。然後我在裏面調用一個函數for循環,它基本上是將記錄插入5個表格並將id更新到中央表格。這個呼叫功能是整個過程的主要時間。附:這些記錄必須插入創紀錄的紀錄..請推薦一些解決方案..重型Mysql操作和時間限制
//這是示例代碼
$query=mysql_query("SELECT DISTINCT p1.ID
FROM table1 p1, table2 p2, table3 a
WHERE p2.datatype =0
AND (p1.datatype =1 || p1.datatype=2)
AND p2.ID =0
AND p1.ID = a.ID
AND p1.coulmn1 = p2.column1
AND p1.coulmn2 = p2.coulmn2
AND a.coulmn3 = p2.column3");
$num=mysql_num_rows($query);
for($i=0;$i<$num;$i++) {
$f=mysql_result($query,$i,"ID");
//calling function
RecordInsert($f);
}
你是否誠實地認爲任何人都可以在沒有看到任何代碼的情況下理解你的問題? –
請添加一些示例代碼 –