ezhishui 2016-04-15 03:29 采纳率: 60%
浏览 1658
已采纳

sql排序分页 如果有新数据插入

sql排序分页 如果有新数据插入并且排序在前面,那取第二页的时候就会有重复数据,而且新插入的数据展示不出来了,怎么解决呢?

各位可能没理解我意思:
比如说现在数据库里面几千万数据,还是实时插入的数据,我想排序后分页取,比如说第一次通过代码给数据库传参取第一页,取100条,

1、这个过程数据库是把所有数据几千万条全部load到内存中排序,然后进行分页,然后取出前100条吗?

2、那第二次,还会再load所有数据一次重新排一次序,再取出101-200之间的吗?
这样岂不是很费内存,效率低下。

3、如果实时有新的数据插入,比如说应该排在前100条,而第二次去取得时候,那第一次的最后一条数据岂不是又在第二页中又取一次。

  • 写回答

6条回答

  • Goskalrie 2016-04-15 16:53
    关注

    数据量很大,一次全部加载是不可能的。考虑两种极端情况,第一种新插入的数据在所有排序中为第一条数据,这种情况可以插入数据后重新加载前100,刷新一次局部页面。第二种情况是新插入的数据在所有排序中为最后一条,这种情况直接插入就好了,页面无需重新加载数据。对于是否应该重新加载页面,只需要将新插入的数据和已经加载进来的数据中的最后一条进行比较就可以,所执行的操作并不多。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 shape_predictor_68_face_landmarks.dat
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制