实现千万级数据的分页显示!

实现千万级数据的分页显示 实现千万级数据的分页显示!--可以在5秒内获取1448万条记录里的第1200页的100条记录,雄不? 立即下载

/*
 名称:spAll_DeleteNoneUnique
 输入:要查询的表名和字段列表
 输出:
 调用:
 说明:实现千万级数据的分页显示!--可以在5秒内获取1448万条记录里的第1200页的100条记录,雄不?
 作者:铁拳
 邮件:
 网站:http://www.wellknow.net
 更新:20040610
 支持:http://bbs.wellknow.net
 版权:转述时请注明来源:用思维创造未来的Wellknow.net
*/

CREATE PROCEDURE GetRecordFromPage
    @tblName      varchar(255),       -- 表名
    @fldName      varchar(255),       -- 字段名
    @PageSize     int = 10,           -- 页尺寸
    @PageIndex    int = 1,            -- 页码
    @IsCount      bit = 0,            -- 返回记录总数, 非 0 值则返回
    @OrderType    bit = 0,            -- 设置排序类型, 非 0 值则降序
    @strWhere     varchar(1000) = ''  -- 查询条件 (注意: 不要加 where)
AS

declare @strSQL   varchar(6000)       -- 主语句
declare @strTmp   varchar(100)        -- 临时变量
declare @strOrder varchar(400)        -- 排序类型

if @OrderType != 0
begin
    set @strTmp = "<(select min"
    set @strOrder = " order by [" + @fldName +"] desc"
end
else
begin
    set @strTmp = ">(select max"
    set @strOrder = " order by [" + @fldName +"] asc"
end

set @strSQL = "select top " + str(@PageSize) + " * from ["
    + @tblName + "] where [" + @fldName + "]" + @strTmp + "(["
    + @fldName + "]) from (select top " + str((@PageIndex-1)*@PageSize) + " ["
    + @fldName + "] from [" + @tblName + "]" + @strOrder + ") as tblTmp)"
    + @strOrder

if @strWhere != ''
    set @strSQL = "select top " + str(@PageSize) + " * from ["
        + @tblName + "] where [" + @fldName + "]" + @strTmp + "(["
        + @fldName + "]) from (select top " + str((@PageIndex-1)*@PageSize) + " ["
        + @fldName + "] from [" + @tblName + "] where " + @strWhere + " "
        + @strOrder + ") as tblTmp) and " + @strWhere + " " + @strOrder

if @PageIndex = 1
begin
    set @strTmp = ""
    if @strWhere != ''
        set @strTmp = " where " + @strWhere

    set @strSQL = "select top " + str(@PageSize) + " * from ["
        + @tblName + "]" + @strTmp + " " + @strOrder
end

if @IsCount != 0
    set @strSQL = "select count(*) as Total from [" + @tblName + "]"

exec (@strSQL)

GO

一千万条以上记录分页数据库优化经验总结 别人写的一篇文章,觉得不错,分享给大家。 立即下载

相关推荐

MySQL 百万级分页优化(Mysql千万级快速分页)

MySQL 百万级分页优化(Mysql千万级快速分页),主要解决大数量级的优化

Mysql千万级别数据如何做分页

一、先来看看对SQL优化的理解 SQL优化可分为两个部分,一个是设计阶段,另一个是查询阶段 设计阶段运用到的优化: 使用适当的数据库列类型和大小(需要保证表设计的字段长度足够使用,且最小。比如性别gender字段可以用tinyint(1)即可)。小点的话,可以节省硬盘空间和检索时间。 尽量从设计上采用单表查询解决业务问题。 在适当字段加入索引,能用唯一索引用唯一索引(性能比普通索引高)。 查询阶段涉及的优化: 尽可能不用select *:让优化器无法完成索引覆盖扫...

点滴记忆,分享成长之路 4943

实现千万级数据的SQL分页代码

实现千万级数据的分页显示!--可以在5秒内获取1448万条记录里的第1200页的100条记录

postgreSQL单表数据量上千万分页查询缓慢的优化方案

postgreSQL单表数据量上千万分页查询缓慢的优化方案

MusicIsMyAll的博客 3万+

千万级数据分页查询存储过程SQLServer

千万级数据分页查询存储过程SQLServer 有实例

SqlServer千万级分页取数据.sql

CREATE PROCEDURE SP_Pagination /* *************************************************************** ** 千万数量级分页存储过程 ** *************************************************************** 参数说明: 1.Tables :表名称,视图 2.PrimaryKey :主关键字 3.Sort :排序语句,不带Order By 比如:NewsID Desc,OrderRows Asc 4.CurrentPage :当前页码 5.PageSize :分页尺寸 6.Fields :显示的列 7.Filter :过滤语句,不带Where 8.Group :Group语句,不带Group By

mysql

这里写自定义目录标题 文章目录 MySQL面试中常见问题总结 这里写自定义目录标题 JDBC连接的过程 连接池 (1). 连接池的工作原理 (2). 连接池主要参数 数据库范式 (1). 第一范式(1NF) (2). 第二范式(2NF) (3). 第三范式(3NF) (4). 巴斯范式(BCNF) InnoDB和MyISAM区别 (1). 区别 (2). InnoDB存储引擎的4大特性 堆组织表,索引组织表和索引聚簇表 (1). 堆组织表 (2). 索引组织表 (3). 索引聚簇表 mysql优化 B+树

Ddoze的博客 322

雷电模拟器安装面具环境并过软件检测系列(看这一篇就够了!)

雷电模拟器安装面具环境并过基本软件的环境检测

qq_45059975的博客 6万+

实现千万级数据的分页显示!

俺从http://czcz1024.blogchina.com/转来滴转自csdn作者:铁拳/*  经测试,在 14483461 条记录中查询第 100000 页,每页 10 条记录按升序和降序第一次时间均为 0.47 秒,第二次时间均为 0.43 秒,测试语法如下:  exec GetRecordFromPage news,newsid,10,100000  news 为 表名, new

batistuta8848的专栏 548

超简单的视频换脸,效果相当不错!完全白嫖的技术,来自ComfyUI 官方客户端一键搞定!手把手教会你如何下载安装部署,而且教你如何使用。

如果你电脑上没有安装Visual Studio的C++桌面开发组件,还有Windows应用SDK C++模板,那么你需要自行去下载安装下【安装后默认界面会自动识别系统语言,当然如果你是中文繁体用户,那么你可以在 ComfyUI 的管理器里下载。】并把它放入根目录-models-insightface文件夹内 , 同时下载视频换脸工作流 【分享手把手教你视频换脸,本地部署,轻轻松松当上“电影主角”】,否则insightface无法被正常载入。) 这是换脸必备的工具 ,安装后重启;

TianLeung的博客 2854

将Python爬取的数据导入钉钉多维表

摘要:本文介绍将Python爬取的数据导入钉钉多维表的完整解决方案。首先通过requests库爬取数据并解析为结构化格式,然后使用钉钉开放平台API对接多维表。关键步骤包括获取app_key、app_secret等凭证,通过OAuth2获取access_token,以及批量写入记录。文章详细说明了参数获取位置、字段类型匹配、权限配置等注意事项,并提供了错误处理建议和性能优化方法。适用于需要将网络数据同步到钉钉多维表的开发场景。

IT深耕十余载,大道之简 2131
上一篇: 大家来讨论通过牺牲存储空间来达到数据库存取性能的办法?
下一篇: 通用存储过程.查找删除非唯一的记录
wellknow
博客等级 码龄26年 3粉丝 14原创
评论 14
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值