[英]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 by
的where
和order by
。 那应该提高性能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.