分页查询sql语句怎么写?mysql分页查询优化技巧

分页查询是数据库开发中非常常见的操作,不同的数据库系统(如 MySQL、PostgreSQL、Oracle、SQL Server 等)有不同的分页语法,以下是几种主流数据库的分页查询 SQL 语句示例:


MySQL / MariaDB

使用 LIMITOFFSET 关键字。

MySQL延时关联使分页查询速度提升N倍
加载中
MySQL延时关联使分页查询速度提升N倍
SELECT  FROM table_name
ORDER BY id ASC
LIMIT page_size OFFSET start_index;

示例: 每页 10 条数据,第 2 页(即从第 11 条开始取 10 条):

SELECT  FROM users
ORDER BY id ASC
LIMIT 10 OFFSET 10;

💡 注意:OFFSET 是从 0 开始计数的,第 1 页 OFFSET=0,第 2 页 OFFSET=10,第 n 页 OFFSET=(n-1)page_size。


PostgreSQL

同样使用

分页查询sql语句怎么写?mysql分页查询优化技巧

LIMITOFFSET,语法与 MySQL 类似。

SELECT  FROM table_name
ORDER BY id ASC
LIMIT page_size OFFSET start_index;

示例:

SELECT  FROM users
ORDER BY id ASC
LIMIT 10 OFFSET 10;

Oracle

Oracle 12c 之前使用 ROWNUM,12c 及以上推荐使用 OFFSET ... FETCH NEXT

✅ Oracle 12c+ 推荐写法:

SELECT  FROM table_name
ORDER BY id ASC
OFFSET start_index ROWS
FETCH NEXT page_size ROWS ONLY;

示例:

SELECT  FROM users
ORDER BY id ASC
OFFSET 10 ROWS
FETCH NEXT 10 ROWS ONLY;

⚠️ Oracle 11g 及以下(使用 ROWNUM):

分页查询sql语句怎么写?mysql分页查询优化技巧

SELECT FROM ( SELECT a., ROWNUM rn FROM ( SELECT FROM users ORDER BY id ASC ) a WHERE ROWNUM <= 20 ) WHERE rn > 10;

SQL Server

使用 OFFSET ... FETCH NEXT(SQL Server 2012+)或 TOP + NOT IN/ROW_NUMBER()(旧版本)。

✅ SQL Server 2012+ 推荐写法:

SELECT  FROM table_name
ORDER BY id ASC
OFFSET start_index ROWS
FETCH NEXT page_size ROWS ONLY;

示例:

SELECT  FROM users
ORDER BY id ASC
OFFSET 10 ROWS
FETCH NEXT 10 ROWS ONLY;

⚠️ SQL Server 2008 及以下(使用 ROW_NUMBER()):

SELECT  FROM (
    SELECT , ROW_NUMBER() OVER (ORDER BY id ASC) AS row_num
    FROM users
) AS numbered
WHERE row_num BETWEEN 11 AND 20;

分页查询sql语句怎么写?mysql分页查询优化技巧


SQLite

与 MySQL 类似,使用 LIMITOFFSET

SELECT  FROM table_name
ORDER BY id ASC
LIMIT page_size OFFSET start_index;

📌 通用建议

  1. 始终使用 ORDER BY:分页时必须指定排序字段,否则结果可能不稳定。
  2. 避免深层分页:当 OFFSET 很大时(如第 10000 页),查询性能会显著下降,可考虑使用“游标分页”(基于上一页最后一条记录的 ID):
    SELECT  FROM users
    WHERE id > last_seen_id
    ORDER BY id ASC
    LIMIT 10;
  3. 索引优化:确保排序字段和过滤条件有合适的索引,以提升分页查询性能。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://test.idctop.com/article/481484.html

(0)
GEO优化有没有副作用2026?GEO优化对SEO排名有影响吗
上一篇 2026年7月10日 18:48
Python dedupe去重怎么实现?python数据清洗去重方法
下一篇 2026年7月10日 18:51

相关推荐

  • 服装网站建设市场现状如何?服装网站制作费用多少钱

    2026年服装网站建设已从单纯的“展示橱窗”升级为“数据驱动的智能交易引擎”,核心在于通过移动端优先策略与AI个性化推荐实现高转化率,如今打开浏览器,你会发现用户等待页面的耐心已压缩至极限,对于服装品牌而言,一个加载缓慢、导航混乱的网站等同于在繁华商圈关上了大门,行业共识认为,视觉美感虽重要,但技术架构的稳健性……

    2026年7月4日
    7910
  • ideasvn修改服务器地址如何操作?,内网地址如何修改?

    IDEA里修改SVN服务器地址,核心做法只有一个:使用SVN自带的Relocate功能切换版本库URL,千万别手动改文件或直接编辑配置,对于内网地址变更、服务器迁移这类场景,Relocate能保留本地未提交的修改和版本历史,操作完成后重新登录即可继续提交更新,以下按实际操作路径展开,先明确:什么情况下必须改服务……

    2026年8月20日
    300
  • 大模型核采样Nucleus Sampling是什么?大模型采样算法有哪些

    核采样(Nucleus Sampling)是一种通过动态调整概率阈值来平衡大模型输出创造性与稳定性的采样技术,它摒弃了传统的固定概率截断,转而选取累积概率达到特定阈值(如0.9)的最小词汇集合进行随机选择,从而有效抑制胡言乱语并保留语言的多样性,在大型语言模型的生成过程中,我们常常面临一个两难困境:如果让模型完……

    2026年6月22日
    2200
  • IT运维监控平台如何实现监控运维,哪个好?

    IT运维监控平台没有绝对的好坏,选型的关键在于匹配你的业务场景、技术栈和预算,与其盲目跟风,不如先搞清楚自己的核心需求,很多团队初期都会纠结选Zabbix、Prometheus这类开源方案,还是直接上Datadog、Splunk这类商业平台,答案取决于你的团队规模、技术能力和运维目标,下面直接切入正题,IT运维……

    2026年8月7日
    500
  • 什么是AI大模型常用术语?大模型核心概念解析

    AI大模型的核心术语体系主要围绕“提示词工程”、“微调技术”及“推理优化”三大维度展开,掌握这些概念是高效利用人工智能工具、降低试错成本并提升输出质量的关键所在,当我们谈论AI大模型时,往往容易陷入技术黑箱的迷雾,理解这些术语就像学习一门新语言的语法和词汇,对于普通用户而言,不需要成为算法工程师,但必须知道如何……

    2026年6月13日
    2700
  • 为什么过滤器效果不好?家用净水器过滤器怎么选

    在2026年的内容生态中,”filtered”代表的不仅是技术层面的过滤,更是信息降噪与精准匹配的核心能力,它通过算法筛选出高价值内容,直接决定了用户能否在海量数据中快速获取有效信息,为什么2026年的搜索更依赖过滤机制过去的搜索逻辑是”关键词匹配”,用户输入词,系统返回包含该词的所有页面,这种模式在信息匮乏时……

    2026年7月8日
    16300
  • 服务器双系统怎么选?双系统安装教程

    若追求极致性能与稳定性,首选Linux;若依赖特定Windows生态软件或需图形化管理,则选择Windows Server,在服务器部署的初期,架构师往往面临一个经典难题:当硬件资源允许运行两个操作系统时,究竟该如何抉择?这并非简单的二选一,而是对业务逻辑、运维成本及安全策略的深度权衡,双系统环境通常指在同一物……

    2026年7月12日
    12600
  • ingress的QPS、RT是什么,如何优化?

    Ingress的QPS(每秒查询数)和RT_QPS(响应时间与每秒查询数的组合指标)是衡量Kubernetes入口网关性能的两个核心维度,前者反映吞吐量,后者揭示处理效率与延迟的直接关联,理解ingress的qps和rt_qps:两个关键指标什么是ingress的qps?QPS(Queries Per Seco……

    2026年8月17日
    700
  • 发优惠信息短信的便宜平台都有哪些,哪个平台最便宜?

    发优惠信息短信的便宜平台,核心在于选择按量付费、通道稳定且提供免费测试的SaaS服务商,如云片、乐信、秒赛、聚推等,但需根据实际发送量、地域需求对比套餐,同时关注到达率及售后服务,切忌只看单价忽略隐藏成本,发优惠信息短信哪个平台便宜:价格对比关键点不同平台价格差异主要源于结算模式和通道成本,据统计,目前主流平台……

    2026年7月24日
    300
  • IPv6地址长度是多少?,动态获取IPv6地址怎么设置

    IPv6地址长度为128位,是IPv4的四倍,动态获取IPv6地址目前主要通过SLAAC或DHCPv6协议自动完成,无需手动配置即可接入下一代互联网,ipv6地址长度是多少?128位带来的改变很多人对IPv6的第一印象就是“地址长”,但具体长多少、为什么长、长了好不好,这些才是关键,IPv6地址长度固定为128……

    2026年8月20日
    1000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注