方法1: 直接使用数据库提供的SQL语句
---语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N。
---适应场景: 适用于数据量较少的情况(元组百/千级)。
---原因/缺点: 全表扫描,速度会很慢且 有的数据库结果集返回不稳定(如某次返回1,2,3,另外的一次返回2,1,3)。Limit限制的是从结果集的M位置处取出N条输出,其余抛弃。
方法2: 建立主键或唯一索引, 利用索引(假设每页10条)
---语句样式: MySQL中,可用如下方法:
SELECT * FROM 表名称 WHERE id_pk > (pageNum*10) LIMIT M。
---适应场景: 适用于数据量多的情况(元组数上万)。
---原因: 索引扫描,速度会很快。有朋友提出因为数据查询出来并不是按照pk_id排序的,所以会有漏掉数据的情况,只能方法3。
方法3: 基于索引再排序
---语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 WHERE id_pk > (pageNum*10) ORDER BY id_pk ASC LIMIT M。
---适应场景: 适用于数据量多的情况(元组数上万). 最好ORDER BY后的列对象是主键或唯一所以,使得ORDERBY操作能利用索引被消除但结果集是稳定的(稳定的含义,参见方法1)。
---原因: 索引扫描,速度会很快. 但MySQL的排序操作,只有ASC没有DESC(DESC是假的,未来会做真正的DESC,期待)。
方法4: 基于索引使用prepare(第一个问号表示pageNum,第二个?表示每页元组数)
---语句样式: MySQL中,可用如下方法:
PREPARE stmt_name FROM SELECT * FROM 表名称 WHERE id_pk > (?* ?) ORDER BY id_pk
ASC LIMIT M。
---适应场景: 大数据量。
---原因: 索引扫描,速度会很快. prepare语句又比一般的查询语句快一点。
方法5:利用MySQL支持ORDER操作可以利用索引快速定位部分元组,避免全表扫描
---比如: 读第1000到1019行元组(pk是主键/唯一键)。
---SELECT * FROM your_table WHERE pk>=1000 ORDER BY pk ASC LIMIT 0,20。
方法6: 利用"子查询/连接+索引"快速定位元组的位置,然后再读取元组. 道理同方法5
---如(id是主键/唯一键,蓝色字体时变量):
利用子查询示例:
|
SELECT * FROM your_table WHERE id <= (SELECT id FROM your_table ORDER BY id desc LIMIT ($page-1)*$pagesize ORDER BY id desc LIMIT $pagesize |
利用连接示例:
|
SELECT * FROM your_table AS t1 JOIN (SELECT id FROM your_table ORDER BY id desc LIMIT ($page-1)*$pagesize AS t2 WHERE t1.id <= t2.id ORDER BY t1.id desc LIMIT $pagesize; |
方法7: 存储过程类(最好融合上述方法5/6)
---语句样式: 不再给出
---适应场景: 大数据量. 作者推荐的方法
---原因: 把操作封装在服务器,相对更快一些。
方法8: 反面方法
---网上有人写使用 SQL_CALC_FOUND_ROWS。没有道理,勿模仿 。
基本上,可以推广到所有数据库,道理是一样的。但方法5未必能推广到其他数据库,推广的前提是,其他数据库支持ORDER BY操作可以利用索引直接完成排序。
相关推荐
总结,MySQL的分页功能是处理大数据量查询的关键技术,通过合理使用`LIMIT`和`OFFSET`,配合索引优化,可以有效地提高查询效率,提升用户交互体验。同时,随着版本升级,MySQL提供了更多分页策略和技术,如窗口函数...
### ASP与MySQL分页技术详解 #### 一、引言 在Web开发中,当数据量庞大时,一次性展示所有数据不仅会导致页面加载缓慢,还会严重影响用户体验。因此,实现数据的分页显示变得尤为重要。本文将详细介绍如何在ASP...
### MySQL分页存储过程概述 分页存储过程是一种在数据库层面上实现数据分页的技术。相比应用程序级别的分页,它能更高效地处理数据,减少网络传输的数据量,提升系统性能。在MySQL中,我们可以通过创建存储过程来...
在IT行业中,数据库查询和网页显示往往涉及到大量的数据处理,特别是在网页展示时,为了提高用户体验,通常会采用分页技术。这里的"accss,mysql,asp通用分页,自定义分页样式"就是一个关于如何在ASP(Active ...
本文档对MySQL分页技术进行了总结,讨论了在JSP实现中使用Servlet+JavaBean+JSP三级架构的分页技术的实现方式。文章首先讨论了分页技术的重要性,并且提出了一个基本的分页思路,即获取总记录数、设置每页显示的记录...
在网页开发中,数据量较大的情况下,为了提高用户体验和页面加载速度,通常会采用分页技术来展示数据。本主题“PHP+MYSQL分页代码”着重讲解如何在PHP后端和MySQL数据库配合下实现高效、实用的分页功能。下面我们将...
总结来说,C++通过MFC和MySQL Connector/C++库可以方便地实现与MySQL数据库的交互,进行分页查询。这个过程涉及到数据库连接、SQL语句构造、结果集处理以及用户界面的交互。理解并熟练运用这些概念和技术,将有助于...
### Struts2与MySQL分页实现详解 #### 一、背景与目的 随着Web应用的不断发展,用户对于信息展示的需求也越来越高。为了更好地管理和展示大量数据,分页技术成为了一个不可或缺的功能。本文将详细介绍如何利用...
总结来说,这个主题涵盖了JAVA后端如何通过调用MYSQL存储过程处理分页查询,以及JSP如何接收并展示这些数据。这样的组合既利用了JAVA的强类型和面向对象特性,也利用了JSP的便捷的视图处理能力,同时通过存储过程...
总结,MySQL分页技术的选择应根据数据量、查询复杂度和系统性能需求来确定。对于大型数据集,建立有效的索引、使用预编译语句或存储过程都是不错的选择。同时,持续关注数据库的性能调优和新特性,如MySQL的优化改进...
在数据库操作中,分页查询是一项非常重要的技术,尤其是在处理大量数据时。本文将基于提供的文件信息,深入探讨三种不同的分页查询方法及其在Oracle、SQL Server(这里用SQL代替)、MySQL中的实现方式,并对它们的...
通过分页技术,可以有效地减少每次查询的数据量,提高系统的响应速度和用户体验。MySQL作为一种广泛使用的数据库管理系统,支持通过存储过程的方式来实现分页功能。 #### 存储过程简介 MySQL中的存储过程是一种...
在Web开发中,数据量庞大的情况下,为了提高用户体验和页面加载速度,通常会采用分页技术来展示数据。本主题将深入探讨如何结合JavaServer Pages(JSP)和MySQL数据库实现高效、灵活的分页功能。 一、JSP与MySQL...
本项目聚焦于使用JSP、JavaBean和Servlet技术,结合Oracle与MySQL两种主流关系型数据库实现分页功能。以下将详细介绍这些技术及其在分页中的应用。 1. JSP(JavaServer Pages):JSP是一种动态网页技术,允许开发...
在数据库管理领域,分页是实现高效数据检索和呈现大量数据的关键技术。Oracle 和 MySQL 都提供了各自的分页解决方案。本文将深入探讨这两种数据库在分页方面的实现方式,并结合源码分析来阐述其工作原理。 Oracle ...
因此,采用分页技术来优化用户体验是非常必要的。本文将详细介绍如何在 Eclipse 开发环境中利用 MySQL 数据库实现数据分页功能。 #### 二、关键技术点解析 ##### 1. JSP 页面结构 JSP (Java Server Pages) 是一种...
总结来说,实现“jq.ajax+php+mysql实现分页显示数据”的过程主要包括:前端使用jQuery的AJAX发送请求,PHP后端处理请求并从MySQL数据库获取分页数据,再将数据转化为JSON返回给前端,前端解析JSON并动态更新页面。...
总结起来,实现`java web mysql 通用分页`需要结合前端和后端的协同工作,通过合理的SQL构造和优化,以及良好的用户体验设计,来提供高效、安全且易用的分页功能。在实践中,可以借助各种成熟的框架和工具,如Spring...
### 目前最好的分页技术:JSP #### 前言 在处理数据库查询时,经常需要使用分页功能来提高数据展示的效率及用户体验。然而,标准的JDBC并未提供良好的分页机制,因此开发者们需要寻找或创造其他方式来实现这一功能...
### 经典的 PHP + MySQL 分页显示技术详解 在 Web 开发中,尤其是在构建具有大量数据展示功能的网站时,分页是一项非常重要的技术。它不仅能够提高用户体验,还能减轻服务器的压力。本文将深入探讨一种经典的 ...