美文网首页java成长路漫漫
mysql5.6 按时间排序问题

mysql5.6 按时间排序问题

作者: WillM | 来源:发表于2018-03-29 00:00 被阅读0次

    使用javax.persistence下的@CreatedDate生成创建时间,使用HikariCP连接池进行mysql(v5.6)数据库存储,时间戳如下:

    实体对应的时间戳

    用mysql根据时间倒序查询结果如下:

    时间倒序查询结果

    莫名的没有没有规则可循.经过咨询可能是mysql根据分区进行优先排序导致的问题,因为mysql的datetime类型只精确到秒,所以时间戳毫无用武之地.

    已增加字段来排序,暂未找到好的结果方法,有好的解决方法望留言告知,tks

    <--------------------------------<--------------------------------<--------------------------------

    原因: sql执行顺序为 form… where… select… order by… limit…,在完成select之后,所有记录是以堆排序的方法排列的,在进行order by时,仅把view_count值大的往前移动,所以结果是随机的.

    这是5.6版本针对5.5的优化,也出现了隐藏bug.同时该优化可能会导致 limit+order by的组合会出现不同页相同数据的问题

    解决方法:在字段添加上索引,索引是有序的且持久的.暂未确定最新版本是否有相同问题.

    相关文章

      网友评论

        本文标题:mysql5.6 按时间排序问题

        本文链接:https://www.haomeiwen.com/subject/qmjpcftx.html