先看下表中共有多少条数据:
一百二十多万条,呵呵。
sql语句:
declare @d datetime set @d = getdate() select top 10 ID,U_Name,U_Age,U_Sex,U_Address from Test1 where ID not in (select top 9990 ID from Test1 order by ID) order by ID select [not in方法升序分页执行花费时间(毫秒)]=datediff(ms,@d,getdate()) declare @s datetime set @s = getdate() select top 10 ID,U_Name,U_Age,U_Sex,U_Address from Test1 where ID >=(select max(ID) from (select top 9991 ID from test1 order by ID) as T) order by ID select [Max方法升序分页执行花费时间(毫秒)]=datediff(ms,@s,getdate()) declare @t datetime set @t = getdate() select top 10 ID,U_Name,U_Age,U_Sex,U_Address from Test1 where ID not in (select top 9990 ID from Test1 order by ID desc) order by ID desc select [not in方法降序分页执行花费时间(毫秒)]=datediff(ms,@t,getdate()) declare @q datetime set @q = getdate() select top 10 ID,U_Name,U_Age,U_Sex,U_Address from Test1 where ID <=(select min(ID) from (select top 9991 ID from Test1 order by ID desc) as T) order by ID desc select [Min方法降序分页执行花费时间(毫秒)]=datediff(ms,@q,getdate())
分页效率一目了然!
两种方法的不同点之一就是计算第二个top中的值
not in 中计算公式为:
pgSize * (pgNo - 1)
max\min中计算公式为:
((pgNo-1)*pgSize+1)
pgNo为当前第几页,pgSize为每页几条数据。
相关推荐
本文将介绍一种高效的分页方法——Min-Max分页。 Min-Max分页方法的核心思想是利用数据库的索引来获取特定范围内的数据,而不是遍历所有记录。这种方法显著减少了数据库的负担,尤其是在处理大数据集时。 在提供的...
T-SQL提供了大量内置函数,如聚合函数(COUNT、SUM、AVG、MIN、MAX)、字符串函数(CONCAT、SUBSTRING、PATINDEX)、日期时间函数(DATEADD、DATEDIFF、GETDATE)等,这些函数可以帮助处理和转换数据。 以上只是T-...
3. 聚合函数:掌握`COUNT`, `SUM`, `AVG`, `MAX`, `MIN`等函数的应用。 4. 分组与排序:学习`GROUP BY`和`ORDER BY`子句,以及`HAVING`子句的使用。 5. 连接查询:理解不同类型的连接(INNER JOIN, LEFT JOIN, RIGHT...
3. **聚合函数**:类似SQL中的COUNT、SUM、AVG、MIN、MAX等统计函数,Elasticsearch-SQL也提供了对应的聚合功能,可以对数据进行统计分析。 4. **GROUP BY与HAVING子句**:用于数据分组和过滤,可以结合聚合函数...
它的主要功能是将传统的SQL查询语句引入到Elasticsearch之中,使得用户能够通过熟悉的SQL语法来操作和查询Elasticsearch索引中的数据,极大地降低了非编程背景用户的使用门槛。这款插件的版本为2.2.0.1,其设计思路...
3. **聚合函数与窗口函数**:讲解了SUM、AVG、COUNT、MAX和MIN等聚合函数的用法,以及ROW_NUMBER、RANK、DENSE_RANK、LEAD和LAG等窗口函数的应用,这些在数据分析和报表制作中非常关键。 4. **存储过程和函数**:...
这种方法是对第一种的改进,它首先选取`@totalRecord-@startpos`条记录,然后再次使用`TOP`选取需要的分页数据。这允许对非主键字段进行排序,但每次都需要主键信息,且效率仍不理想。 3. **TOP(max) 和 TOP(min)*...
2. 数据查询:深入理解SELECT语句的使用,如选择列、指定表、连接操作、子查询、聚合函数(COUNT、SUM、AVG、MAX、MIN)、分组(GROUP BY)与排序(ORDER BY)。 3. 条件过滤:学习WHERE子句,掌握比较运算符(=、...
聚合窗口函数包括SUM()、AVG()、MAX()、MIN()和COUNT()等,而非聚合窗口函数包括ROW_NUMBER()、RANK()、DENSE_RANK()、NTILE()和FIRST_VALUE()等。 5. 性能调优的重要性 在数据库操作中,性能调优至关重要,尤其是...
### 一个高效的SQL分页语句 #### 概述 在进行程序开发的过程中,经常会遇到需要处理大量数据的情况。为了提高用户体验,通常会采用分页技术来展示数据,而不是一次性加载所有数据。本文将详细介绍一个高效的SQL...
对于大规模数据集,建议优先考虑使用基于MAX或MIN函数的方法,因为它们能够更好地利用索引,减少全表扫描,提高查询效率。同时,合理设计索引,如在经常用于分页的字段上建立索引,可以显著提升分页查询的速度。 ...
`GROUP BY`子句在SQL查询语言中用于将数据表中的行归类为一组,通常与聚合函数如`COUNT()`, `SUM()`, `AVG()`, `MAX()`, 和 `MIN()` 结合使用,以便对每一组的数据进行统计分析。例如,如果我们有一个销售记录表,并...
这里使用`TOP`关键字结合`MIN`或`MAX`函数来定位数据的起点。 4. **应用WHERE条件**:如果存在查询条件,则将其添加到外层查询中。 5. **执行动态SQL语句**:最后,使用`EXEC`命令执行构建好的动态SQL语句。 这种...
### 几款通用的SQL分页存储过程:深入解析与应用 在数据库操作中,分页查询是一项常见的需求,尤其当数据量庞大时,合理的分页可以极大地提高查询效率和用户体验。本文将深入分析两款通用的SQL分页存储过程,分别...
本文将介绍一种高效的SQL分页查询方法,该方法能在5秒内获取1448万条记录中的第1200页的100条记录。 #### 技术原理 本方案的核心在于利用两次TOP查询以及子查询来实现高效分页。首先,根据分页参数计算出当前页码...
- 分组与聚合函数:GROUP BY、HAVING、COUNT、SUM、AVG、MAX和MIN的用法。 - 子查询:嵌套查询,用于在查询中使用一个查询的结果。 - 联接查询:LEFT JOIN、RIGHT JOIN、INNER JOIN和FULL OUTER JOIN的区别与应用...
4. **分组查询**:`GROUP BY`语句用于将数据按一个或多个列进行分组,常与聚合函数(如`COUNT`, `SUM`, `AVG`, `MIN`, `MAX`)结合使用,例如`SELECT 列1, COUNT(*) FROM 表名 GROUP BY 列1`计算每组的数量。...
5. **`EXISTS`与`NOT EXISTS`**:在检查数据是否存在时,优先考虑使用`EXISTS`,因为它通常比`COUNT(*)`或`NOT IN`更快。 6. **避免`OR`与`UNION`**:在`JOIN`操作中,尽量避免在`WHERE`子句中使用`OR`,可能的话,...
该方法使用MAX或MIN函数来获取当前页的数据。存储过程代码如下: ```sql CREATE PROC [dbo].[proc_select_id] @pageindex int=1,--当前页数 @pagesize int=10,--每页大小 @tablename VARCHAR(50)='',--表名 @...
- 分页查询:LIMIT或OFFSET在MySQL中的应用,ROW_NUMBER()、RANK()和DENSE_RANK()在SQL Server中的分页方法。 2. Oracle数据库: - PL/SQL:Oracle的存储过程、函数、触发器和游标。 - 分区表:提高大数据量表的...