//计时开始

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类;通常会修改

1 public function execute($sql) {

2   //code...

3

4 /*检测sql执行时间,超过执行时间记录到日志中*/

5 $start_time = array_sum(explode(' ', microtime()));

6

7 $this->lastresult = mysql_query($sql,$this->link) or $this->displayerror($sql);

8

9 $end_time = array_sum(explode(' ', microtime()));

10 $differ = $end_time - $start_time;

11 if($differ >0.001){ //修改时间范围,单位:秒

12 putContent('sqlLOG', date('Y-m-d H:i:s', $start_time)." "

13 . date('Y-m-d H:i:s', $end_time)." "

14 .$differ. " ".$sql."\r\n");

15 }

16

17

18   //code...

19 }

引用:

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

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

除了这种方式还可以使用mysql的profile,可以参考@php里sql执行时间的监控?

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

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

批注1:micortime函数

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

批注2:profile最多保存100条记录,这个要怎么解决呢?

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输出毫秒级的时间。为获取更为精准的毫秒级时间戳可以使用下面的代码:

function getMillisecond() {

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

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

}

echo getMillisecond();

运行结果:1.46647658229E+12

php查看mysql最近执行过的sql_PHP获取MySQL执行sql语句的查询时间相关推荐

  1. PHP获取MySQL执行sql语句的查询时间

    PHP获取MySQL执行sql语句的查询时间 1. $t1=microtime(true); mysql_query($sql); echo microtime(true)-$t1; 2. //计时开 ...

  2. mysql创建部门表和员工表,并用sql语句进行查询

    创建第一个表(部门表) CREATE TABLE IF NOT EXISTS bumenTable(bumenTableid INT(11) NOT NULL PRIMARY KEY COMMENT' ...

  3. 预算执行审计计算机审计方法,预算执行审计中计算机审计思路和SQL语句运用.doc...

    预算执行审计中计算机审计思路和SQL语句运用 预算执行审计中计算机审计思路和SQL语句运用 [摘要] 面对庞大的业务数据量,计算机辅助审计的开展解决了手工审计无法做到的审查功能,财政预算执行的审计领域 ...

  4. mysql中sql插入时间_mysql中使用sql语句插入日期时间类型的写法

    [例子如下: select * from ( select rownumber() over() as rownumber, id from associate ) as temp where row ...

  5. mysql查询选课程的学生学号和姓名_数据库SQL语句中查询选修了全部课程的学生的学号和姓名理解...

    首先头脑中有三点概念: 1.EXISTS子查询找到的提交 NOTEXISTS子查询中找不到的提交 说明:不要去翻译为存在和不存在,把脑袋搞晕. 2.建立程序循环的概念,这是一个动态的查询过程.如FOR ...

  6. java mysql查询字段换行,java类中写sql语句,查询条件包含换行

    java类中写sql语句,查询条件包含换行 detachedCriteria.add(Restrictions.or( Restrictions.like("chengBanDanWeiId ...

  7. java 查询sql语句_java执行SQL语句实现查询的通用方法详解

    完成sql查询 并将查询结果放入vector容器,以便其他程序使用 /* * 执行sql查询语句 */ public static vector executequery(class clazz, s ...

  8. mysql 执行效率命令_MySQL优化--explain 分析sql语句执行效率

    MySQL优化--explain 分析sql语句执行效率 explain 命令 explain 命令在解决数据库性能上市第一推荐使用命令,大部分的性能问题可以通过此命令来简单解决,explain可以用 ...

  9. mysql查看cpu使用高sql语句_查询CPU占用高的SQL语句

    触发器造成死锁.作业多且频繁.中间表的大量使用.游标的大量使用.索引的设计不合理.事务操作频繁.SQL语句设计不合理,都会造成查询效率低下.影响服务器性能的发挥.我们可以使用sql server自带的 ...

最新文章

  1. 【问链财经-区块链基础知识系列】 第三十一课 Fabric版本变迁之路从1.1-1.4
  2. oracle创建数据库的三种方法
  3. 本题中的变量(不包括变量ID)进行z-score标准化
  4. android应用开发全程实录-实现甩动拨打和挂断电话
  5. Java面试题整理,java常用排序算法图解
  6. mysql时间相减得到天数保留两位_【敲黑板!】分布式事务数据库 —-MySQL 数据库开发规范(第四节)...
  7. StarUML建模软件
  8. 第三章:学生管理模块
  9. 20200707每日一句
  10. 【Java】JavaWeb概述
  11. 【STM32H7的DSP教程】第5章 Matlab简易使用之常用编程语句
  12. 磁带机故障灯解决方法
  13. 如何计算 R 中 F 统计量的 P 值
  14. mysql asc_mysql – 在字符串列上使用asc和desc的索引
  15. 解决用友固定资产出现的“不能月末结账,可能月末未结账”的处理办法
  16. 三星会议组织:八个必须,三个公式
  17. 最优化方法(学习笔记)-第七章统计估计
  18. Adobe XMP SDK编译
  19. 入门IOS客户端开发(一)
  20. 后缀名为.cpa文件结尾的数据包文件解析

热门文章

  1. Python3.6下安装扩展库pywin32的正确姿势
  2. 详解Python切片技术
  3. 利用OpenCV和C++实现由RGB图像转化为灰度图,再将灰度图转化为二值图的程序
  4. 基于MVC的jpetstore项目分析
  5. 电力设计手册_电气设计负荷计算方法
  6. excel打开空白不显示内容 没有隐藏_这些Excel快捷键你都会吗?
  7. php过滤危险路径,PHP技巧:php过滤危险html代码
  8. python filter过滤器的使用_Python filter过滤器原理及实例应用
  9. css无效 https_【CSS非全解02】CSS基础-文档流
  10. C++基础与深度解析第七章:深入IO