簡體   English   中英

提高PHP和MySQL Web服務的速度

[英]Increase speed of PHP and MySQL webservice

我已經使用php和mysql創建了一個Web服務來為我的應用程序插入和返回數據。 用戶的主要抱怨之一是響應速度太慢,我同意,因為它需要5到10秒才能完成任務。 原本以為這是托管性能問題,但並沒有改變(哥達迪與AWS)。

查看我的php文件中的SQL代碼,我認為這就是問題所在。 我希望重新編寫以提高速度。 我相信問題是我使用了時間戳,要返回,我總是尋找max(timestamp)。

這是我的輸入SQL語句:

 $insert = mysql_query("INSERT INTO meals (user, date, meal, timeStamp, food) VALUES ('$user','$date','$meal','$timeStamp','$food')");

這是我的返回SQL語句:

 $query = mysql_query ("SELECT * FROM meals WHERE user = '$user' AND date = '$date' AND meal = '$meal' AND timeStamp = (SELECT MAX(`timeStamp`)FROM meals WHERE user = '$user' AND date = '$date' AND meal = '$meal')");

使用UPDATE或類似方法而不使用時間戳會更好嗎? 還有其他建議嗎?

這是您的查詢:

SELECT *
FROM meals
WHERE user = '$user' AND date = '$date' AND meal = '$meal' AND
      timeStamp = (SELECT MAX(`timeStamp`)
                   FROM meals
                   WHERE user = '$user' AND date = '$date' AND meal = '$meal'
                  );

假設只需要一行,第一個簡化是:

SELECT *
FROM meals
WHERE user = '$user' AND date = '$date' AND meal = '$meal'
ORDER BY timestamp desc
LIMIT 1;

接下來,索引將幫助此查詢。 實際上,關於meals(user, date, meal, timestamp)的索引對於order bywhereorder by 那應該提高性能。

暫無
暫無

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

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