首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不通过分析器程序分析web应用程序的另一种方法是什么?

不通过分析器程序分析web应用程序的另一种方法是什么?
EN

Stack Overflow用户
提问于 2011-08-14 23:05:43
回答 3查看 47关注 0票数 2

我有一个网站,使用php - mysql。我想确定占用时间最多的数据库查询。除了使用分析器之外,我还可以使用哪些其他方法来定位查询瓶颈。

EN

回答 3

Stack Overflow用户

发布于 2011-08-14 23:09:49

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

  • http://dev.mysql.com/doc/refman/5.1/en/slow-query-log.html

慢查询日志由执行时间超过long_query_time秒的所有SQL语句组成,并且(从MySQL 5.1.21开始)至少需要检查min_examined_row_limit行。获取初始表锁的时间不计入执行时间。mysqld在执行慢查询日志并释放所有锁之后,会向慢查询日志中写入一条语句,因此日志顺序可能与执行顺序不同。long_query_time的默认值为10。

票数 1
EN

Stack Overflow用户

发布于 2011-08-14 23:23:03

这是一个很大的主题,我只能建议几点-但我相信在其他地方也有很好的报道主题,所以

首先分析db查询。每个RDBMS都有一个长时间运行的查询列表,MySql是用一个配置标志打开的。这将捕获长时间运行的查询(这可能是秒级,这对于现代RDBMS来说是很长的时间)。

此外,每个RDBMS都会返回一个时间来执行它的记录集。我强烈建议您通过一个公共函数提取对DNase的所有调用,例如"executequery“,然后将SQL和执行时间提取到一个文件中,以便以后使用。

通常,慢查询来自于糟糕的表设计和缺乏良好的索引。对您担心的任何查询运行"explain“- dbae将告诉您它将如何运行该查询-任何”表扫描“都表明RDBMS无法在满足查询需求的表上找到索引

下一步分析是一个术语,最常用于查看执行程序的某些部分所花费的时间,即所有时间都在使用for循环,或者建立数据库连接所花费的时间。

您似乎想要的是性能测试

票数 0
EN

Stack Overflow用户

发布于 2011-08-14 23:40:43

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7057577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档