学无先后,达者为师

网站首页 PHP其他 正文

数据库不断有新数据插入, 导致分页查询数据重复的问题

更新时间: 2020-07-12 PHP其他

问题描述

首先, 查询数据时是按照数据的录入时间分页查询的, 最新的数据一直是第1页; 同时, 库表不断地有新数据写入, 这就导致了分页查询数据请求出现重复问题.

例如19:31分时分页查询请求第1页数据, 返回了5条数据


在这期间, 又有5条新数据插入到了数据库;

此时, 分页查询请求第2页数据, 由于新数据的插入, 之前第1页的数据已经变成了第2页的数据了, 所以第2页返回的数据和第1页一样, 造成了数据的重复.


解决思路
解决思路1

一次性返回符合条件的所有数据, 然后交给前端去分页, 此时前端拿到比如500条数据, 然后前端的分页就是数据展示的问题了, 而不再涉及到再次请求服务器, 因而就不会出现数据重复问题

但是, 分页的目的是为了减轻服务器请求的压力, 如果一次请求的数据量过大, 就会降低服务器的反应速度, 因此这个想法不太可行.

 

解决思路2

请求第1页时记录第1条数据(即最新的那条)的写入时间, 然后后面查询第2,3,4...页数据, 把记录的写入时间作为参数, 然后在sql语句中做限制

例如查询第2页, 设置写入时间小于等于2019-05-15 19:31:59, 这样即使有新数据插入, 也不在我们本次分页查询的范围内.

select * from table1 where write_time <=1557919919000 order by write_time desc limit 5,5

原文链接:https://blog.csdn.net/liu844133828/java/article/details/90243453

栏目分类
最近更新