ezhishui
ezhishui
采纳率60%
2016-04-15 03:29

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

1
  • sql
已采纳

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

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

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

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

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

6条回答

  • Goskalrie Goskalrie 5年前

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

    点赞 评论 复制链接分享
  • o527883184 o527883184 5年前

    分页主要目的就是避免一次全部加载,降低执行效率。
    你可以查查 每次只加载一页 这样 才是真正的使用分页

    点赞 评论 复制链接分享
  • u013321534 525546523 5年前

    load出几千万数据,你的服务一定会挂。分页的话可以在数据库中排好序了,根据传入分页参数,取出相应的0-100条或者101-200条

    点赞 评论 复制链接分享
  • qq_17044277 qq_17044277 5年前

    使用倒序排列,分页时,把数据写入session

    点赞 评论 复制链接分享
  • poisions poisions 5年前

    如果对实时性要求不是很高,可以在sql中按创建时间排序再分页获取数据,利用ajax的特效滚动刷新

    点赞 评论 复制链接分享
  • m000000l m000000l 5年前

    先插入再排序不可以吗

    点赞 评论 复制链接分享

相关推荐