2016-04-24 239 views
0

搜索參數中的用戶鍵,然後我們向數據提供者發出請求並將用戶重定向到加載頁面。來自數據提供者的響應命中一個回調url,在這種情況下,我們解析結果並將大約200行存儲到db中。與此同時,加載頁面使用ajax來每秒查詢數據庫,當結果全部到達時,我們會將結果顯示給用戶。插入MYSQl速度太慢

問題是插入到mysql數據庫太慢了。我們知道來自數據提供者的響應會在幾秒鐘內回來,但腳本的處理和將行插入到數據庫中非常緩慢。我們確實使用多行插入。

任何改善建議?供參考,代碼非常長...這就是爲什麼現在不顯示。

+0

它有多慢?插入200行,它也不會那麼快。 – rahul

+0

擴展,數據庫引擎,索引?插入前已預處理?連接/斷開每個插入?足夠的機器功率?我猜想還有很多其他事情需要考慮。 – frz3993

+0

@Plum大約需要15-25秒。在開發上它大約快2-3秒。 – TimNguyenBSM

回答

0

有衆多影響您插入因素:

1)慢的硬件和糟糕的服務器的速度。 溶膠:請與服務器管理員

2)使用InnoDB的比

3以外的東西)使用代理鍵,比你的主鍵是數字和順序與你本身的主鍵以及其他。

OR

4)試試這個https://stackoverflow.com/a/2223062/3391466

0

建議:而不是運行在一個頁面上的代碼,並讓用戶等待整個過程,爲什麼沒有PHP頁面存儲指令在PHP隊列?然後,指令將由單獨的php腳本執行(例如Cron作業),用戶不必等待整個過程發生。

但是,在這種情況下,讓用戶知道所做的更改可能需要一點時間才能更新。

克倫職位很容易實現。在CPanel中,Cron作業有一個選項,您可以在其中指定要運行哪個腳本以及在哪個區間中。您可以讓腳本知道每1分鐘運行一次(或多或少取決於需求量)。從那裏你的腳本將檢查隊列,並可以繼續運行,直到隊列再次爲空。

讓我知道是否有幫助!