使用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的组合会出现不同页相同数据的问题
解决方法:在字段添加上索引,索引是有序的且持久的.暂未确定最新版本是否有相同问题.