簡體   English   中英

我們怎樣才能在后台運行sql查詢

[英]how can we run sql query in background

我想知道如何在后台運行sql查詢...我有一個大查詢,花了這么多時間我想把它作為背景運行,這樣我的頁面加載時間會更少..

使用cron在PHP腳本中運行查詢並緩存結果。

您可以使用AJAX在單獨的腳本中調用查詢。 當請求頁面時,正常處理PHP,渲染並將頁面發送給訪問者,並立即啟動AJAX腳本,請求執行慢速查詢的另一個PHP腳本。 查詢運行時將加載頁面,當您從查詢中獲得結果時,請使用一些JavaScript來合並結果。 這里的好處是,當頁面加載時,查詢正在運行,所以你要同時執行這兩個操作。

另請參閱優化查詢並確保在表上設置索引以加快查詢速度。

這里有一些解決方案http://dev.mysql.com/doc/refman/5.0/en/table-locking.htmlhttp://dev.mysql.com/doc/refman/5.5/en/insert.html

官方mySQL網站說:

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [INTO] tbl_name [(col_name,...)]
{VALUES | VALUE} ({expr | DEFAULT},...),(...),...

所以一個真實的用例看起來像

INSERT LOW_PRIORITY INTO tablename (column1,column2) VALUES ("hello","you");

我建議使用CRON和Cache方法,或者實現AJAX的使用。

使用CRON和Cache,運行您的查詢,然后將其序列化並將其保存到文件中以獲得理智。 需要時調用和反序列化。

使用AJAX,當您的頁面加載時,調用一個執行並返回查詢的文件。 這樣,您可以在服務器運行查詢時顯示等待指示符,並且它們彼此分開。

將查詢寫入PHP文件,並在要運行它的時間或時間間隔進行安排。 對於Linux計划CRON或Windows使用任務計划程序其他您可以通過Ajax請求觸發它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM