php - 提高 PHP 和 MySQL 网络服务的速度

标签 php mysql sql

我已经使用 php 和 mysql 创建了一个网络服务来为我的应用程序插入和返回数据。用户的主要提示之一是响应太慢,我同意这一点,因为它需要 5-10 秒才能完成任务。最初认为这是一个托管性能问题,但没有产生任何影响(godaddy 与 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) 上的索引适用于 whereorder by。这应该会提高性能。

关于php - 提高 PHP 和 MySQL 网络服务的速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20825968/

相关文章:

php - Doctrine 2.2/Symfony 2.2 : Persisting an entity with a composite foreign key

javascript - 从客户端隐藏 API key

php - WordPress 错误!无法打开流 : Permission denied

mysql - 准备好的语句的最大长度是多少?

sql - 如何加载大量字符串与oracle数据库匹配?

Mysql删除顺序

php - RouteCollection.php 行 219 : in laravel after successfully payment in paypal 中的 MethodNotAllowedHttpException

mysql - 获取2个时间戳之间的记录MySql

用于发送电子邮件的 PHP/MySQL 脚本 - 一封邮件太多

mysql - 更新 : ERROR 1265 (01000): "Data truncated for column at row 1"