php 查询日期 sql语句怎么写,PHP获取MySQL执行sql语句的查询时间方法

搜索热词

如下所示:

PHP;">

//计时开始

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);

}

对sql的执行时间进行分析可以:

1,确定sql的书写是否合理,高效

2,检查字段、表的设计是否合理

方法1:在系统底层对sql操作类进行改写,通常类的结构是

业务model ---》 db类 ---》 执行sql

可以根据情况在某阶段进行改写,比如db类;通常会修改

/检测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...

}

引用:

PHPmyadmin中的代码,获得query执行时间如下:

PHP;">

// 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_tryquery($fullsql_query,null,PMA_DBI_QUERY_STORE);

$querytime_after = array_sum(explode(' ',microtime()));

$GLOBALS['querytime'] = $querytime_after - $querytime_before;

除了这种方式还可以使用MysqL的profile。

这个更适合统计多条sql的执行情况。

我见过好像是一个博客,访问页面之后会有一个提示大概说共查询了几次数据库,用了多长时间查询数据,那么开启MysqL的profile就可以轻松实现了。

函数

计算微秒的函数micortime(),可以返回当前UNIX时间戳和微秒数。返回浮点数单位为秒。不过函数仅在支持gettimeofday()系统调用的操作系统下可用。可以查下手册详细了解下。可能引发有些不明的错误,注意。

解决呢?

PHP;">

profiling_history_size

The 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.

这个最大就100条了,改不了。

引用2:PHP获取毫秒级时间戳的方法

java里面可以通过gettime();获取。如果是要与java写的某些程序进行高精度的毫秒级的对接通信,则需要使用PHP输出毫秒级的时间。为获取更为精准的毫秒级时间戳可以使用下面的代码:

PHP;">

PHP

function getMillisecond() {

list($t1,$t2) = explode(' ',microtime());

return (float)sprintf('%.0f',(floatval($t1)+floatval($t2))*1000);

}

echo getMillisecond();

运行结果:1.46647658229E+12

以上这篇PHP获取MysqL执行sql语句的查询时间方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程之家。

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值