繁体   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