• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > mysql执行时间为负数的原因分析

mysql执行时间为负数的原因分析

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了执行时间,负数等相关知识,希望本文的分享对您有所帮助

今天看到有人把phpmyadmin中的执行时间出现负数的情况视为phpmyadmin的bug, 其实这种情况的本质是php中浮点数(float)的精度问题。

代码如下:
list($usec, $sec) = explode(' ', microtime());
$timer = (float)$usec + (float)$sec;
mysql_query($query, $active_db);
list($usec, $sec) = explode(' ', microtime());
$stop = (float)$usec + (float)$sec;
$diff = $stop - $timer;
?>

$stop 和 $timer都是转化后得到的浮点数,大多数情况下,echo $stop 和 echo $timer得到的结果用肉眼观察是相同的,但是它们在计算机中的存储并不相同,所以结果不为0,也有可能为负。

php手册中提示:

浮点数精度:
显然简单的十进制分数如同 0.1 或 0.7 不能在不丢失一点点精度的情况下转换为内部二进制的格式。这就会造成混乱的结果:例如,floor((0.1+0.7)*10) 通常会返回 7 而不是预期中的 8,因为该结果内部的表示其实是类似 7.9999999999...。

这和一个事实有关,那就是不可能精确的用有限位数表达某些十进制分数。例如,十进制的 1/3 变成了 0.3333333. . .。

所以永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。如果确实需要更高的精度,应该使用任意精度数学函数或者 gmp 函数。
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 在oracle 数据库中查看一个sql语句的执行时间和SP2-0027错误
  • mysql执行时间为负数的原因分析
  • mysql 显示SQL语句执行时间的代码
  • 在SQLServer上查看SQL语句的执行时间的方法
  • 返回SQL执行时间的存储过程
  • SQL Server 中查看SQL句子执行所用的时间
  • 在ADF中跟踪SQL执行时间实现代码
  • 查看mysql语句运行时间的2种方法

相关文章

  • 2018-12-05将表数据生成Insert脚本 比较好用的生成插入语句的SQL脚本
  • 2018-12-05mysql筛选GROUP BY多个字段组合时的用法分享
  • 2017-05-11Mysql之EXPLAIN显示using filesort介绍
  • 2017-05-11MySQL优化GROUP BY方案
  • 2017-05-11MySQL的Data_ADD函数与日期格式化函数说明
  • 2018-12-05从MySQL迁移到MongoDB记一次MongoDB性能问题详解
  • 2018-12-05mysql索引是什么?浅谈mysql索引
  • 2018-12-05详解centos7下mysql5.6的主从复制的示例代码分享
  • 2018-12-05Oracle使用PL/SQL操作COM对象
  • 2017-05-11mysql删除重复记录语句的方法

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • MySql的索引操作
    • 详解mysql表名忽略大小写配置的方法
    • 详解MySQL的主从复制、读写分离、备份恢复
    • MySQL交叉表实现分享
    • MySQL之——查询重复记录、删除重复记录方法大全
    • Sqlserver 存储过程中结合事务的代码
    • 中小软件公司项目管理(3.3 项目外部关键成功因素)
    • mysql 无法连接问题的定位和修复过程分享
    • 用Oracle9ias开发无线应用程序开发者网络Oracle
    • 解析MySQL动态修改varchar长度的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有