数据库进行分页时,如果查询过程中对前面的数据进行增加和删除的操作,就会导致有的数据读重了和有的数据读不到的情况,如何设计能避免这种问题啊???

解决方案 »

  1.   

    查询时记录分页节点的数据ID,在分页的时候基于ID进行分页
      

  2.   

    通常是没必要避免的,也不需要考虑查询中有数据变化是正常现象
    如果你要避免,比如查询所有数据缓存 ,然后从缓存取,那么新的问题是你的数据变化了,但是你的查询中没有体现出现,这同样是问题
    就算你用 id ,一个 id 的数据删除后重新 insert 了,你说这个该重新被查询出来,还是该放弃?唯一稳定的是你把查询的所有数据锁定,但除非你设计的是单人使用的系统,否则这个锁定导致其他人都没办法更新和insert了,这是更大的问题
      

  3.   

    如果数据不多,则一次性读出,然后在CLIENT端进行分页。