0

0

各大数据库分段查询技术的实现方式

大家讲道理

大家讲道理

发布时间:2016-11-12 10:37:40

|

3798人浏览过

|

来源于php中文网

原创

数据库分段查询技术的实现


    分段查询的意思是,在查询数据时不是一次性全部将附合条件的数据都读取在内存里。一次性将数据全部查询出来,将降低查询效率,给客户端的反应会很长时间,而分段查询的意思是按照当前分页的大小,每次查询的结果就是每页显示的数量,大大提升了查询效率

例如数据库中有100000条数据,每页20条,当点击页码的时候,只查询该页码需要显示的那20条内容,不查询别的页面的,即每次只查询20条数据

  SQL Server

从数据库表中的第M条记录开始取N条记录,利用Top关键字:注意如果Select语句中既有top,又有order by,则是从排序好的结果集中选择:

SELECT *

FROM ( SELECT Top N *
FROM (SELECT Top (M + N - 1) * FROM 表名称 Order by 主键 desc) t1 ) t2
Order by 主键 asc

例如从表Sys_option(主键为sys_id)中从10条记录还是检索20条记录,语句如下:

SELECT *
FROM ( SELECT TOP 20 *
 FROM (SELECT TOP 29 * FROM Sys_option order by sys_id desc) t1) t2
Order by sys_id asc

 Oralce数据库

从数据库表中第M条记录开始检索N条记录

SELECT *
FROM (SELECT ROWNUM r,t1.* From 表名称 t1 where rownum < M + N) t2
where t2.r >= M

例如从表Sys_option(主键为sys_id)中从10条记录还是检索20条记录,语句如下:

SELECT *
FROM (SELECT ROWNUM R,t1.* From Sys_option where rownum < 30 ) t2
Where t2.R >= 10

MySQL数据库

My sql数据库最简单,是利用mysql的LIMIT函数,LIMIT [offset,] rows从数据库表中M条记录开始检索N条记录的语句为:

以下是代码片段:

SELECT * FROM 表名称 LIMIT M,N

例如从表Sys_option(主键为sys_id)中从10条记录还是检索20条记录,语句如下:

华友协同办公自动化OA系统
华友协同办公自动化OA系统

华友协同办公管理系统(华友OA),基于微软最新的.net 2.0平台和SQL Server数据库,集成强大的Ajax技术,采用多层分布式架构,实现统一办公平台,功能强大、价格便宜,是适用于企事业单位的通用型网络协同办公系统。 系统秉承协同办公的思想,集成即时通讯、日记管理、通知管理、邮件管理、新闻、考勤管理、短信管理、个人文件柜、日程安排、工作计划、工作日清、通讯录、公文流转、论坛、在线调查、

下载

以下是代码片段:

select * from sys_option limit 10,20

 以前用ORACLE时,分页使用ROWNUM做条件就可以了,不管效率如何,反正实现起来比较容易。

那么ACCESS如何实现分页功能呢?看了些资料说得有些复杂,要写好些代码,我想到一个好方法,来跟大家分享,也就是一个SQL语句:

select top 15 * from YOURTABLE where ID not in(select top 15 ID from YOURTABLE order by ID desc)  order by ID desc

稍解释一下,15呢是每页的行数,YOURTABLE是表名,ID是表中主键字段(当然你也可以用别的),我上面的SQL语句,是取出第二页(第二个15条)记录。想变页码,只要把后面的15变成相应的倍数就可以了。

  用这种方式,结合不带分页功能的DataRepeater插件,我三下五除二就写好的记事本程序。不要笑话我,我的.NET的新手,先写这个练练手。

  如果有人感兴趣,请留言,我可以把代码贴出来。

  请注意:

  如果取第一个15条记录,SQL语句不能这样写:

  select top 15  *  from YOURTABLE where ID not in(select top 0 ID from YOURTABLE order by ID desc)  order by ID desc

  这样写会报错。直接写成:

select top 15  *  from YOURTABLE   order by ID desc

  如果要加限制条件,可以这样写:

select top 15  *  from YOURTABLE where ID not in(select top 15 ID from YOURTABLE where  NAME='wallimn' order by ID desc) and NAME='wallimn'  order by ID desc

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
go语言 注释编码
go语言 注释编码

本专题整合了go语言注释、注释规范等等内容,阅读专题下面的文章了解更多详细内容。

2

2026.01.31

go语言 math包
go语言 math包

本专题整合了go语言math包相关内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

go语言输入函数
go语言输入函数

本专题整合了go语言输入相关教程内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

golang 循环遍历
golang 循环遍历

本专题整合了golang循环遍历相关教程,阅读专题下面的文章了解更多详细内容。

0

2026.01.31

Golang人工智能合集
Golang人工智能合集

本专题整合了Golang人工智能相关内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

76

2026.01.31

高干文在线阅读网站大全
高干文在线阅读网站大全

汇集热门1v1高干文免费阅读资源,涵盖都市言情、京味大院、军旅高干等经典题材,情节紧凑、人物鲜明。阅读专题下面的文章了解更多详细内容。

73

2026.01.31

无需付费的漫画app大全
无需付费的漫画app大全

想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。

67

2026.01.31

漫画免费在线观看地址大全
漫画免费在线观看地址大全

想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。

19

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Git 教程
Git 教程

共21课时 | 3.2万人学习

Kotlin 教程
Kotlin 教程

共23课时 | 3万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号