zoukankan      html  css  js  c++  java
  • mysql order by操作性能问题

    在我的笔记本上,运行如下 sql代码(总共数据行约7万行,无索引)

    select * from(
    SELECT nodeinfo.nodeID nodeid,nodeinfo.niid niid ,nodeinfo.type type ,nodeinfo.testType testtype,sensordatapacket.storedtime storedtime,sensordatapacket.value value,
    sensordatapacket.unit unit,sensordatapacket.dataType datatype,nodeconfig.nodeAddress nodename
    FROM
    nodeinfo
    Left Join sensordatapacket ON nodeinfo.nodeID = sensordatapacket.nodeID
    Left Join nodeconfig ON nodeconfig.nodeID = nodeinfo.nodeID
    where  testtype='待测'  and type='土壤温度'  order by storedtime desc)  a
    group by a.nodeid order by a.storedtime  desc

    红字标注部分,使用order by storedtime desc时候 共用时9.284s

      使用order by storedtime asc时候,共用时17.04s

    不使用order by操作的时候共用时2.022s。

    目的时候对每个nodeid,检索出storedtime最近的一条数据。

    若不使用order by 操作,检索出数据,storedtime时间为中间的一个某个时间。符合E.F.Codd博士在“a relation modal of data for large shared data banks”中提出的

    数据库关系模型 的理论。数据库的物理存储并不一定是按照主键顺序存储,数据表中的数据本质上是在一个集合中。

  • 相关阅读:
    linux中的 tar命令的 -C 参数,以及其它一些参数
    dockerfile 介绍
    linux安装mysql后root无法登录
    centos搭建本地yum源,
    centos7下载自定义仓库的镜像设置方法
    QT TCP文件上传服务器
    QT UDP聊天小程序
    QT 网络编程三(TCP版)
    QT 网络编程二(UDP版本)
    QT 网络编程一
  • 原文地址:https://www.cnblogs.com/zhangshufeng/p/2706859.html
Copyright © 2011-2022 走看看