PHP在MYSQL数据库中执行语句非常慢

标签 php mysql sql ms-access

我正在为一家公司建立一个 php 网站,该网站显示 MYSQL 中数据库的信息,但有时加载该信息需要大约 20 秒,而且它只是随机发生的。正常工作时,大约需要 0.005 秒长。

数据库位于公司内网的本地虚拟服务器中,但我通过dyndns.info:port Access 它。 当速度慢时,如果您重新加载多次,网站会保持缓慢,突然当加载速度快时,会保持快速重新加载,等等。

try {
        $conection= new PDO("mysql:host=domain.dyndns.info; port=0000; dbname= db", user, pass);
        return $conection;
    } catch (PDOException $e) {
    }


代码执行语句很慢:


$statement = $conexion->prepare("SELECT table1.col1, table2.col2, table2.col3, table2.col4, table2.col5 FROM table1 LEFT JOIN table2 ON table1.col6 = table2.col6 LEFT JOIN table 3 ON table1.col1 = table3.col1 LIMIT 10 ");
$start_timer = microtime(true);
$statement->execute();

$piezas = $statement->fetchAll();


$end_timer = microtime(true);

该查询有三个左联接,table1 有 50,000 行,table2 有 20,000 行,table3 有 80,000 行,所以我认为这可能是一个可能的问题,但它并不能解释为什么有时网站加载速度很快。

另一个可能的问题可能是虚拟服务器,但我不确定这是否可以解释查询的随机缓慢。

有什么想法可能是实际问题吗?或者有什么测试工具可以帮助我?

最佳答案

您的查询速度很慢?

对查询运行 EXPLAIN 并对其进行分析。

关于PHP在MYSQL数据库中执行语句非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55345603/

相关文章:

php - 时间戳中的错误日期

php - MYSQL 语法不正确

php - 日期时间格式,更改格式。

sql查询将行转换为列

mysql - 如何不允许在数据库中复制特定值

mysql - SQL 错误 #1215 - 无法添加外键约束

php - 验证插入 codeigniter

php - 需要有关 window.onload 和 IE 的帮助

MySQL 连接池与 Node.js

php - 将输入数据与从数据库查询的数据进行比较