mysql5.6 按时间排序问题

使用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的组合会出现不同页相同数据的问题

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 什么是数据库? 数据库是存储数据的集合的单独的应用程序。每个数据库具有一个或多个不同的API,用于创建,访问,管理...
    chen_000阅读 9,454评论 0 19
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,898评论 18 399
  • MySQL不权威总结 欢迎阅读 本文并非事无巨细的mysql学习资料,而是选择其中重要、困难、易错的部分进行系统地...
    liufxlucky365阅读 7,537评论 0 26
  • 进入近代以来,随着城市化进程的加快和人们对城市生活质量要求的提高,全球范围内的园林绿化行业得到了快速的发展。...
    悒仧徽虋阅读 3,304评论 0 2
  • 曾经读了一本书《论贞操的重要性》~文章引经据典~举例论证~读来觉得文章十分有道理~内心十分佩服~读吧以后~细细品味...
    c550d9582299阅读 1,566评论 0 0