mysql order by操作性能问题
2012-09-28 11:02
381 查看
在我的笔记本上,运行如下 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”中提出的
数据库关系模型 的理论。数据库的物理存储并不一定是按照主键顺序存储,数据表中的数据本质上是在一个集合中。
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”中提出的
数据库关系模型 的理论。数据库的物理存储并不一定是按照主键顺序存储,数据表中的数据本质上是在一个集合中。
相关文章推荐
- 【MySQL性能优化】改进MySQL Order By Rand()的低效率
- mysql order by limit 问题
- MySQL的Order By Rand()的效率问题
- mysql:21个性能优化最佳实践之6[不要使用ORDER BY RAND()]
- mysql5.7中的一个update order by排名问题解决办法(一条sql搞定排名)
- mysql 5.7会遇到 [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause ...的问题
- [置顶] 【MySQL性能优化】改进MySQL Order By Rand()的低效率
- MySQL order by性能优化方法实例
- MYSQL随机抽取查询 MySQL Order By Rand()效率问题
- sort order by导致分页语句性能问题优化
- MySQL order by 字符串的排序问题
- 【MySQL性能优化】改进MySQL Order By Rand()的低效率
- mysql 5.6 order by Limit执行效率问题
- Mysql order by和limit混合使用问题
- mysql union order by 分别排序问题
- MYSQL随机抽取查询 MySQL Order By Rand()效率问题
- mysql order by 多字段排序问题
- MySQL order by性能优化方法实例