很多博客软件都有这么一个功能,比如“生成本次页面一共花费了xx毫秒,进行了xx次数据库查询”等等。那么这个功能是如何实现的呢,下面我大概说下思路。

1. 在类的构造函数中声明全局变量

定义一个全局变量 $queries 用来统计页面生成经过的数据库查询次数。

1 function __construct()
2 {
3     parent::__construct();
4     global $queries;
5 }

2. 修改数据库类中封装好的的 query()

你应该有用到数据库类吧,找到它封装 query() 的方法,比如下面的:

1 // 执行SQL语句
2 public function query($query)
3 {
4     //echo $query.'<br />';
5     ++$GLOBALS['queries'];
6     return $this->result = mysql_query($query, $this->link);
7 }

那么每执行一次 Query,全局变量 queries 就会自增1。

3. 在方法体中这样写:

1 public function content($id = 0)
2 {
3     $GLOBALS['queries'] = 0;
4     // something to do
5     echo $GLOBALS['queries'];
6 }

就这么简单就能实现那个功能了。

4. 附带计算PHP脚本执行的函数

之前写的博文介绍了下计算PHP脚本执行时间的函数,这里再贴一下吧。

 1 // 计时函数
 2 public function runtime($mode = 0) {
 3     static $t;
 4     if(!$mode) {
 5         $t = microtime();
 6         return;
 7     }
 8     $t1 = microtime();
 9     //list($m0,$s0) = split(" ",$t);
10     list($m0,$s0) = explode(" ",$t);
11     //list($m1,$s1) = split(" ",$t1);
12     list($m1,$s1) = explode(" ",$t1);
13     return sprintf("%.3f ms",($s1+$m1-$s0-$m0)*1000);
14 } 

使用如下:

1 public function content($id = 0)
2 {
3     $this -> runtime();
4     $GLOBALS['queries'] = 0;
5     // something to do
6     echo $GLOBALS['queries'];
7     echo $this -> runtime(1);
8 }

转载于:https://www.cnblogs.com/cobobryan/p/3977296.html

计算一个页面中的数据库查询次数和用时相关推荐

  1. 37--计算一个字符串中每个字符出现次数

    1.问题描述 需求:计算一个字符串中每个字符出现次数. 2.解题思路 获取一个字符串对象: 创建一个Map集合,键代表字符,值代表次数: 遍历字符串得到每个字符: 判断Map中是否有该键: 如果没有, ...

  2. java 循环list 对象_java计算list集合中重复对象的次数及for循环内外创建对象

    我的需求:计算字符串集合中"数值"出现的次数,然后在for循环中计算"数值"及出现的次数 解决方案: 1.使用collections类中的frequency(集 ...

  3. PHP 函数调用次数,php获取页面执行时间,数据库读写次数,函数调用次数等(THINKphp)的简单示例...

    感兴趣的小伙伴,下面一起跟随512笔记的小玲来看看吧!THINKphp里面有调试运行状态的效果: Process:0.2463s (Load:0.0003s Init:0.0010s Exec:0.1 ...

  4. java计算list集合中重复对象的次数及for循环内外创建对象

    2019独角兽企业重金招聘Python工程师标准>>> 我的需求:计算字符串集合中"数值"出现的次数,然后在for循环中计算"数值"及出现的次 ...

  5. python统计列表中元素个数_python中计算一个列表中连续相同的元素个数方法

    python中计算一个列表中连续相同的元素个数方法 最简单的例子: a = [1,1,1,1,2,2,2,3,3,1,1,1,3] # 问:计算a中最多有几个连续的1 很明显,答案是4 如果用代码实现 ...

  6. php查询数据库如何降低负荷,WordPress通过减少数据库查询次数来优化性能的方法...

    说起WordPress优化来算是一个老生常谈的话题了,WordPress很慢,这是很多人都在说的,我记得此论调也就是这几年才流行开的,据说是因为一个台湾的WordPress大咖在自己博客上宣称&quo ...

  7. php输出json到表格,PHP中把数据库查询结果输出为json格式

    header("Content-type:text/html;charset=utf-8");//字符编码设置 $servername = "localhost" ...

  8. jsp在mysql中删除数据_如何在jsp页面中删除数据库中的数据

    如何在jsp页面中删除数据库中的数据 各位大虾! 我想在jsp页面上写一个按钮功能,从而动态的删除数据库中的一行数据. 不知道怎么实现 这是我写的一段代码 数据库是MySql UserBean p3= ...

  9. 求一个字符串中连续出现的次数最多的子串

    求一个字符串中连续出现的次数最多的子串.例如字符串"abababc",最多连续出现的为ab,连续出现三次.要和求一个字符串中的最长重复子串区分开来,还是上面的字符串,那么最长的重复 ...

最新文章

  1. __block的初步用法
  2. 使用驱动器f:中的光盘之前需要将其格式化_mac虚拟光驱Daemon Tools高级功能详解—光盘刻录...
  3. linux基础学习7
  4. linux磁盘高,CentOS 7.2中磁盘iowait过高解决
  5. (剑指Offer)面试题46:求1+2+3+....+n
  6. 2-1 CPU多级缓存-缓存一致性.mkv
  7. 关于公开产品想法这件事的开篇
  8. 重要开源!CNN-RNN-CTC 实现手写汉字识别
  9. 开篇~试试word写博客
  10. linux系统下UTF-8转GBK编码,使用汉字字库在LCD显示汉字
  11. DWG文件怎么转换成PDF的一分钟实用技巧
  12. 安全管理体系升级 迈动互联获得ISO国际认证
  13. Scratch编程(十)扩展模块:视频侦测模块
  14. FM模型及其在推荐系统中的应用
  15. ClickHouse-尚硅谷(1. 入门-概述)学习笔记
  16. mxnet下载与使用
  17. K-mean 算法代码演示
  18. 计算机是如何识别内核态和用户态,用户态和内核态区分(二十七)
  19. PG:什么是grouping sets
  20. 12款适合小团队协作、任务管理和进度跟踪的在线任务管理的工具推荐?

热门文章

  1. python编程之美pdf_GitHub - Farolding/toPdf: 爬取“Python编程之美:最佳实践指南”制作PDF电子书...
  2. 正则表达式的由来(Wikipedia和百度整合记录)
  3. POJO VO PO DTO 和JavaBean
  4. Linux中TTY是什么意思
  5. 批量下载文件并重命名
  6. c#使用PortableDeviceApiLib读取便携式设备(WPD:Windows Portable Devices)信息
  7. 写代码没意思,来个程序媛鼓励师吧
  8. Java代码混淆案例(附反编译工具)
  9. 浏览器F12(开发者调试工具) 功能介绍
  10. Android性能优化之使用线程池处理异步任务