php查看mysql最近执行过的sql_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);
}
对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语句的查询时间相关推荐
- PHP获取MySQL执行sql语句的查询时间
PHP获取MySQL执行sql语句的查询时间 1. $t1=microtime(true); mysql_query($sql); echo microtime(true)-$t1; 2. //计时开 ...
- mysql创建部门表和员工表,并用sql语句进行查询
创建第一个表(部门表) CREATE TABLE IF NOT EXISTS bumenTable(bumenTableid INT(11) NOT NULL PRIMARY KEY COMMENT' ...
- 预算执行审计计算机审计方法,预算执行审计中计算机审计思路和SQL语句运用.doc...
预算执行审计中计算机审计思路和SQL语句运用 预算执行审计中计算机审计思路和SQL语句运用 [摘要] 面对庞大的业务数据量,计算机辅助审计的开展解决了手工审计无法做到的审查功能,财政预算执行的审计领域 ...
- mysql中sql插入时间_mysql中使用sql语句插入日期时间类型的写法
[例子如下: select * from ( select rownumber() over() as rownumber, id from associate ) as temp where row ...
- mysql查询选课程的学生学号和姓名_数据库SQL语句中查询选修了全部课程的学生的学号和姓名理解...
首先头脑中有三点概念: 1.EXISTS子查询找到的提交 NOTEXISTS子查询中找不到的提交 说明:不要去翻译为存在和不存在,把脑袋搞晕. 2.建立程序循环的概念,这是一个动态的查询过程.如FOR ...
- java mysql查询字段换行,java类中写sql语句,查询条件包含换行
java类中写sql语句,查询条件包含换行 detachedCriteria.add(Restrictions.or( Restrictions.like("chengBanDanWeiId ...
- java 查询sql语句_java执行SQL语句实现查询的通用方法详解
完成sql查询 并将查询结果放入vector容器,以便其他程序使用 /* * 执行sql查询语句 */ public static vector executequery(class clazz, s ...
- mysql 执行效率命令_MySQL优化--explain 分析sql语句执行效率
MySQL优化--explain 分析sql语句执行效率 explain 命令 explain 命令在解决数据库性能上市第一推荐使用命令,大部分的性能问题可以通过此命令来简单解决,explain可以用 ...
- mysql查看cpu使用高sql语句_查询CPU占用高的SQL语句
触发器造成死锁.作业多且频繁.中间表的大量使用.游标的大量使用.索引的设计不合理.事务操作频繁.SQL语句设计不合理,都会造成查询效率低下.影响服务器性能的发挥.我们可以使用sql server自带的 ...
最新文章
- 【问链财经-区块链基础知识系列】 第三十一课 Fabric版本变迁之路从1.1-1.4
- oracle创建数据库的三种方法
- 本题中的变量(不包括变量ID)进行z-score标准化
- android应用开发全程实录-实现甩动拨打和挂断电话
- Java面试题整理,java常用排序算法图解
- mysql时间相减得到天数保留两位_【敲黑板!】分布式事务数据库 —-MySQL 数据库开发规范(第四节)...
- StarUML建模软件
- 第三章:学生管理模块
- 20200707每日一句
- 【Java】JavaWeb概述
- 【STM32H7的DSP教程】第5章 Matlab简易使用之常用编程语句
- 磁带机故障灯解决方法
- 如何计算 R 中 F 统计量的 P 值
- mysql asc_mysql – 在字符串列上使用asc和desc的索引
- 解决用友固定资产出现的“不能月末结账,可能月末未结账”的处理办法
- 三星会议组织:八个必须,三个公式
- 最优化方法(学习笔记)-第七章统计估计
- Adobe XMP SDK编译
- 入门IOS客户端开发(一)
- 后缀名为.cpa文件结尾的数据包文件解析
热门文章
- Python3.6下安装扩展库pywin32的正确姿势
- 详解Python切片技术
- 利用OpenCV和C++实现由RGB图像转化为灰度图,再将灰度图转化为二值图的程序
- 基于MVC的jpetstore项目分析
- 电力设计手册_电气设计负荷计算方法
- excel打开空白不显示内容 没有隐藏_这些Excel快捷键你都会吗?
- php过滤危险路径,PHP技巧:php过滤危险html代码
- python filter过滤器的使用_Python filter过滤器原理及实例应用
- css无效 https_【CSS非全解02】CSS基础-文档流
- C++基础与深度解析第七章:深入IO