mysql 联合索引 输出排序问题

MySql 码拜 9年前 (2016-02-17) 1596次浏览
SELECT h.Index,h.PUID,h.ResIdx,h.Latitude,h.Longitude,h.Bearing,h.Speed,
h.Altitude,h.State,h.MaxSpeed,h.MinSpeed,UNIX_TIMESTAMP(h.UTC) AS UTC,h.Timestamp 
FROM HistoryGPSData h 
WHERE h.SUResourceInfo_Index=1 
AND h.PUID="151000000012132264" 
AND h.ResIdx=0 
AND h.UTC BETWEEN ("2015-11-02 00:00:00") AND ("2015-11-02 01:00:00") 
ORDER BY h.Index

index是自增主键
SUResourceInfo_Index、PUID、ResIdx、UTC 四个有个联合索引
数据都是一行一行插入,然后index自增的
问一下这样查询输出顺序是不是本来就是按照插入顺序也就是index顺序输出的 不需要后面的ORDER BY h.Index?
联合索引的顺序是不是就是插入顺序?

解决方案

50

问一下这样查询输出顺序是不是本来就是按照插入顺序也就是index顺序输出的 不需要后面的ORDER BY h.Index?
不一定,假如不指定ORDER BY,则由MYSQL自行决定输出。
联合索引的顺序是不是就是插入顺序?
除巧合情况下,基本不是。

50

引用 11 楼 zwbhwa 的回复:
Quote: 引用 10 楼 yupeigu 的回复:

分页算法,要提高查询的效率,就要通过索引,来过滤数据,且运用索引尽可能排序

本人查询的时候 用了联合索引 也用联合索引里的列进行排序 这样 就不会分页插叙的数据重叠了吧?

那肯定不会,除非你的数据变化了,例如数据被删除了或在原来的数据中间,插入了新的数据,那可能会重叠


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明mysql 联合索引 输出排序问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)