我有一個上傳位置,因此用戶可以使用上傳的文件更新我的數據庫的一部分。這些文件通常高達9GB,因此插入150,000,000行可能需要幾分鐘的時間。使用PHP阻止多個MySQL訪問,但未鎖定MySQL
點擊網站上的按鈕更新數據庫後,PHP(使用mysqli)基本上進行了mysql鎖定。如果我打開其他選項卡,則在大型更新完成之前它們不會得到任何內容。 但是,我知道它實際上並沒有鎖定數據庫/表,因爲從CLI我仍然可以「SELECT count(*)FROM table」,它立刻給我一個結果。
什麼是最好的插入150,000,000條記錄,同時讓其他PHP頁面訪問數據庫的方法(只讀)?
聽起來像阿帕奇工作人員的數量已經超出了,所以它掛在請求,直到有一個免費的工人? – cdhowie 2013-04-08 21:44:56
將它移動到cronjob .. – 2013-04-08 21:49:54
這不是簡單的Apache工作。創建另一個只是<?php echo'Test'?>的頁面立即打開。它只在訪問數據庫的頁面上遇到問題。 PHP在查詢運行時工作正常,MySQL在查詢運行時正常運行。這個問題似乎與MySQL + PHP組合有關。根據phpinfo(),mysqli.max_links被設置爲無限。我似乎無法弄清楚問題可能是什麼。 – 2013-04-09 15:13:38