PHP获取MySQL执行sql语句的查询时间方法
php  /  管理员 发布于 7年前   209
如下所示: 对sql的执行时间进行分析可以: 1,确定sql的书写是否合理,高效 2,检查字段、表的设计是否合理 方法1:在系统底层对sql操作类进行改写,通常类的结构是 业务model ---》 db类 ---》 执行sql 可以根据情况在某阶段进行改写,比如db类;通常会修改 引用: phpmyadmin中的代码,获得query执行时间如下: 除了这种方式还可以使用mysql的profile。 这个更适合统计多条sql的执行情况。 我见过好像是一个博客,访问页面之后会有一个提示大概说共查询了几次数据库,用了多长时间查询数据,那么开启mysql的profile就可以轻松实现了。 批注1:micortime函数 计算微秒的函数micortime(),可以返回当前UNIX时间戳和微秒数。返回浮点数单位为秒。不过函数仅在支持gettimeofday()系统调用的操作系统下可用。可以查下手册详细了解下。可能引发有些不明的错误,注意。 批注2:profile最多保存100条记录,这个要怎么解决呢? 这个最大就100条了,改不了。 引用2:PHP获取毫秒级时间戳的方法 java里面可以通过gettime();获取。如果是要与java写的某些程序进行高精度的毫秒级的对接通信,则需要使用PHP输出毫秒级的时间。为获取更为精准的毫秒级时间戳可以使用下面的代码: 运行结果:1.46647658229E+12 以上这篇PHP获取MySQL执行sql语句的查询时间方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。//计时开始runtime(); //执行查询mysql_query($sql); //计时结束.echo runtime(1); //计时函数 function runtime($mode=0) { static $t; if(!$mode) { $t = microtime(); return; } $t1 = microtime(); list($m0,$s0) = explode(" ",$t); list($m1,$s1) = explode(" ",$t1); return sprintf("%.3f ms",($s1+$m1-$s0-$m0)*1000);}
public function execute($sql) { //code.../*检测sql执行时间,超过执行时间记录到日志中*/$start_time = array_sum(explode(' ', microtime()));$this->lastresult = mysql_query($sql,$this->link) or $this->displayerror($sql);$end_time = array_sum(explode(' ', microtime()));$differ = $end_time - $start_time;if($differ >0.001){ //修改时间范围,单位:秒 putContent('sqlLOG', date('Y-m-d H:i:s', $start_time)." " . date('Y-m-d H:i:s', $end_time)." " .$differ. " ".$sql."\r\n");} //code...}
// garvin: Measure query time.// TODO-Item http://sourceforge.net/tracker/index.php?func=detail&aid=571934&group_id=23067&atid=377411$querytime_before = array_sum(explode(' ', microtime()));$result = @PMA_DBI_try_query($full_sql_query, null, PMA_DBI_QUERY_STORE);$querytime_after = array_sum(explode(' ', microtime()));$GLOBALS['querytime'] = $querytime_after - $querytime_before;
profiling_history_sizeThe number of statements for which to maintain profiling information if profiling is enabled. The default value is 15. The maximum value is 100. Setting the value to 0 effectively disables profiling.
您可能感兴趣的文章:
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号