Php 无需通过探查器程序即可评测web应用程序的替代方法是什么?

Php 无需通过探查器程序即可评测web应用程序的替代方法是什么?,php,database,profiling,Php,Database,Profiling,我有一个使用php-mysql的网站。我想确定占用时间最多的DB查询。除了使用探查器,我还可以使用哪些其他方法来确定查询瓶颈。您可以在MySql中启用慢速查询的日志记录: 慢速查询日志由所有SQL语句组成,这些SQL语句执行时间超过long\u query\u time秒,并且(从MySQL 5.1.21开始)至少需要min\u inspected\u row\u limit行。获取初始表锁的时间不计算为执行时间。mysqld在执行慢查询日志并释放所有锁后,将语句写入慢查询日志,因此日志顺

我有一个使用php-mysql的网站。我想确定占用时间最多的DB查询。除了使用探查器,我还可以使用哪些其他方法来确定查询瓶颈。

您可以在MySql中启用慢速查询的日志记录:

慢速查询日志由所有SQL语句组成,这些SQL语句执行时间超过
long\u query\u time
秒,并且(从MySQL 5.1.21开始)至少需要
min\u inspected\u row\u limit
行。获取初始表锁的时间不计算为执行时间。mysqld在执行慢查询日志并释放所有锁后,将语句写入慢查询日志,因此日志顺序可能与执行顺序不同。
long\u query\u time
的默认值为10


这是一个很大的主题,我只能提出几点建议——但我相信其他地方也有很好的涵盖范围

首先分析数据库查询。每个RDBMS都有一个长时间运行的查询列表,MySql是用一个配置标志打开的。这将捕获运行很长时间的查询(对于现代RDBMS来说,这可能是很长时间的秒数)。
此外,每个RDBMS都返回一个使用其记录集执行的时间。我强烈建议您通过一个公共函数(比如“executequery”)将所有对DNase的调用提取出来,然后将SQL和执行时间提取到一个文件中,供以后使用

一般来说,查询速度慢的原因是糟糕的表设计和缺乏良好的索引。对您担心的任何查询运行“解释”-DBE将告诉您如何运行该查询-任何“表扫描”都表明RDBMS无法在表上找到满足查询需要的索引

下一步评测是一个最常用的术语,用于查看执行程序部分所花费的时间,即始终使用for循环的部分,或用于建立数据库连接的时间


您似乎想要的是性能测试

只是在执行每个查询之前/之后读取时间。如果您使用任何数据库抽象类/函数,这都很容易。

您尝试过吗?占时间比例最高的查询将优先根据该比例显示。