【发布时间】:2018-09-17 18:09:36
【问题描述】:
我在这里遇到了一些非常奇怪的问题。我们在 AWS EC2 上托管了一个 laravel API,我们使用 RDS(mysql 5.6)。我最近在 RDS 上启用了 performance_schema。以下是我注意到的行为
- 我们的 RDS 实例上有两个数据库。一个用于 wordpress,一个用于我们的 laravel API。 Wordpress 数据库查询正在被很好地消化。但是从我们的 laravel 应用程序运行的查询不是。
- 由于某种原因,当我将 MySql Workbench 连接到 RDS 实例并在我们的 Laravel 数据库上执行查询时,它们会出现在语句摘要中。
- 我登录了我的 EC2 机器,连接到 RDS 上的 MySQL 并执行了一些查询,它们在语句摘要中得到跟踪。
所以看起来只有从我们的 Laravel 应用程序执行查询时,它们才不会被跟踪。
我们的 Laravel 版本是 4.2。我正在尝试找出过去两天的原因,任何帮助都会让人松一口气。
我在上述所有步骤中使用的用户都是相同的,并且拥有所有数据库的所有权限。
--编辑--
我进行了许多其他测试,他们都指出只有一个结论,即它与 Laravel 有关。我在托管 laravel 的同一台服务器上创建了一个简单的 php 文件。在这个文件中,我使用相同的用户/密码连接到相同的实例/数据库。我在这个文件中唯一做的就是像这样在 $pdo 上运行一个非常简单的查询。
$stmt = $pdo->query('SELECT name FROM trades');
while ($row = $stmt->fetch())
{
echo $row['name'] . "\n";
}
它出现在查询分析中 [https://prnt.sc/j3ochd](我也手动检查了 performance_schema.events_statements_summary_by_digest)
然后我可以点击我们的 laravel api,它实际上从交易表本身返回条目(非常类似于我上面运行的查询)。但这会出现在我的查询分析报告(Percona PMM)或 events_statements_summary_by_digest
【问题讨论】:
标签: mysql laravel laravel-4 amazon-rds database-performance