[英]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.html和http://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,當您的頁面加載時,調用一個執行並返回查詢的文件。 這樣,您可以在服務器運行查詢時顯示等待指示符,並且它們彼此分開。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.