同步分页

 int pagenumber= 1; // pagenumber是从1开始的不是从零开始的
 int pageSize = 20;
 int totalCount=0;
 //单表分页
 var page = db.Queryable<Student>().ToPageList(pagenumber, pageSize, ref totalCount);
 //如果SqlServer不想有Rownumber可以用 ToOffsetPage 较新版本支持
  
  
 //多表分页
 var list = db.Queryable<Student>().LeftJoin<School>((st,sc)=>st.SchoolId==sc.Id)
 .Select((st,sc)=>new{Id=st.Id,Name=st.Name,SchoolName=sc.Name})
 .ToPageList(pageIndex, pageSize, ref totalCount);

异步分页

 RefAsync<int> total = 0;//REF和OUT不支持异步,想要真的异步这是最优解
 Db.Queryable<Order>().ToPageListAsync(pagenumber, pageSize, total);//ToPageAsync

生成的Sql

  SELECT FROM 
            (SELECT [ID],[SchoolId],[Name],[CreateTime],ROW_NUMBER() 
             OVER(ORDER BY GetDate())AS RowIndex FROM [STudent]) T
   WHERE RowIndex BETWEEN AND 20

SqlSever2012分页

5.0.3.2支持

把  ToPageList 换成  ToOffsetPage   //offest分页

Oracle高性能分页

新功能 : 5.1.2.6-preview03

Oracle分了2种分页,特殊情况下性能慢可以换下面这种

把  ToPageList 换成  ToOffsetPage   //offest分页

获取行号

方式1:只支持SqlServer或者Oracle  ( row_index )

[SugarColumn(IsIgnore=true)]//需要加上
public int RowIndex{get;set;} //行号 序号
 
db.Queryable<Student>().ToPageList(pageIndex, pageSize, ref totalCount)

方式2:都通用

//其他数据库可以这么实现
 int i = 1;
 var getAll = db.Queryable<Order>().Mapper((it,cache)=> {
                it.num= i;//有分页的话需要计算一下 (pageindex-1)*pagesize+i
                i++; 
 }).ToList();

方式3:开窗口函数 (数据库需要支持开窗口函数才能用)

  
//开窗口函数实现
//index  =  SqlFunc.RowNumber($"{it.Id} asc ,{it.Name} desc ");

Count为什么不是long

答: 1亿数据Count就要1分钟,别说int.max的20亿数据了,所以超过1000万以上的查询就不建议查询count,因为count的时间比查询数据的时间更长

SqlSugar分页查询的更多相关文章

  1. SqlSugar常用查询实例-拉姆达表达式

    SqlSugar支持拉姆达表达式查询,匿名对象参数等,相对还是比较方便好用的. 一.查询列表: //查询列表 SqlSugarClient db = SugarContext.GetInstance( ...

  2. JdbcTemplate+PageImpl实现多表分页查询

    一.基础实体 @MappedSuperclass public abstract class AbsIdEntity implements Serializable { private static ...

  3. 用Hibernate和Struts2+jsp实现分页查询、修改删除

    1.首先用get的方法传递一个页数过去 2.通过Struts2跳转到Action 3.通过request接受主页面index传过的页数,此时页数是1, 然后调用service层的方法获取DAO层分页查 ...

  4. MySQL、Oracle和SQL Server的分页查询语句

    假设当前是第PageNo页,每页有PageSize条记录,现在分别用Mysql.Oracle和SQL Server分页查询student表. 1.Mysql的分页查询: SELECT * FROM s ...

  5. 分页查询和分页缓存查询,List<Map<String, Object>>遍历和Map遍历

    分页查询 String sql = "返回所有符合条件记录的待分页SQL语句"; int start = (page - 1) * limit + 1; int end = pag ...

  6. mysql 分页查询

    mysql,; : mysql,; -last. //如果只给定一个参数,它表示返回最大的记录行数目: mysql; 个记录行 ,n. 动态传参的分页查询 SELECT * FROM table LI ...

  7. MongoDB 分页查询的方法及性能

    最近有点忙,本来有好多东西可以总结,Redis系列其实还应该有四.五.六...不过<Redis in Action>还没读完,等读完再来总结,不然太水,对不起读者. 自从上次Redis之后 ...

  8. .NET平台开源项目速览(7)关于NoSQL数据库LiteDB的分页查询解决过程

    在文章:这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑) 与 .NET平台开源项目速览(3)小巧轻量级NoSQL文件数据库LiteDB中,介绍了LiteDB的基本使用情况以及部 ...

  9. SubSonic3.0插件分页查询速度测试

    使用SubSonic3.0一段时间了,一直都想找机会测试一下各种查询分页速度,对比一下插件的查询效率到底怎么样,所以昨天写好了测试程序,准备好1K.1W.10W.50W和100W记录的数据表,早上详细 ...

  10. Node.js、express、mongodb 实现分页查询、条件搜索

    前言 在上一篇Node.js.express.mongodb 入门(基于easyui datagrid增删改查) 的基础上实现了分页查询.带条件搜索. 实现效果 1.列表第一页. 2.列表第二页 3. ...

随机推荐

  1. cmd 7z 文件压缩

    7z压缩测试 为了方便,将7z的安装目录,添加到环境变量中 # 不加环境变量的话,需要带上全路径 C:\Users\vipsoft>"C:\\Program Files\\7-Zip\ ...

  2. 注册中心/配置管理 —— SpringCloud Consul

    Consul 概述 Consul 是一个可以提供服务发现,健康检查,多数据中心,key/Value 存储的分布式服务框架,用于实现分布式系统的发现与配置.Cousul 使用 Go 语言实现,因此天然具 ...

  3. 记一次go应用在k8s pod已用内存告警不准确分析

    版权说明: 本文章版权归本人及博客园共同所有,转载请在文章前标明原文出处( https://www.cnblogs.com/mikevictor07/p/17968696.html ),以下内容为个人 ...

  4. 微信小程序 wx:for 遍历 Map集合

    如果要在微信小程序wxml中对ES6的Map集合进行wx:for遍历,如下: let map = new Map(); map.set("a",[1,2,3]); map.set( ...

  5. Spring注解@Resource和@Autowired区别对比 (附 Maven 引入方法)

    @Resource 导入方法: <dependency> <groupId>javax.annotation</groupId> <artifactId> ...

  6. 机器学习 | 分类性能度量指标 : ROC曲线、AUC值、正确率、召回率

    本篇博客的图源来自 zhwhong,转载仅作学习使用! 在分类任务中,人们总是喜欢基于错误率来衡量分类器任务的成功程度.错误率指的是在所有测试样例中错分的样例比例.实际上,这样的度量错误掩盖了样例如何 ...

  7. Windows环境下,解决无法使用ping命令

    众所周知,ping命令是个非常实用的网络命令:有时,我们会发现在电脑中无法使用ping命令,一般来说,是由于电脑的环境变量出了问题,本文将介绍如何解决这个问题. 1.一般出现ping命令无法使用的情况 ...

  8. 通义千问预体验,如何让 AI 模型应用“奔跑”在函数计算上?

    立即体验基于函数计算部署通义千问预体验: https://developer.aliyun.com/topic/aigc_fc AIGC 浪潮已来,从文字生成到图片生成,AIGC 的创造力让人惊叹,更 ...

  9. zipkin 与 sleuth 实现链路追踪

    本文为博主原创,转载请注明出处 1.Zipkin 与 Sleuth 简介 zipkin 的官网地址: https://zipkin.io/ Zipkin 和 Sleuth 都是由 Twitter 开源 ...

  10. zookeeper分布式锁原理及使用 curator 实现分布式锁

    本文为博主原创,未经允许不得转载: 1. zookeeper 分布式锁应用场景及特点分析 2. zookeeper 分布式原理 3. curator 实现分布式锁 1. zookeeper 分布式锁: ...