一、Mysql的分页

(一)、MySQL分页的实现,使用关键字:Limit

     语法:select * from tableName Limit A,B;

   注释:tableName:表名

    A:查询的起始点(如果A不写的话,默认从0开始)==》(当前页码*页面容量-1 )

    B:获得数据的条数(即每页显示的条数)===》页面容量

 注意:唯一需要注意的问题就是确保使用了索引

例子:

SQL查询:  从表第二条记录开始,获取两条记录
SELECT * FROM edi_test_task order by update_dt desc Limit 2,2;

(二)、查询原理:

  Limit A,B的意思是:  扫描满足条件的A+B行后,扔掉前面的A行,返回需要的B行结果。

    如:limit 2,2;   扫描4行后,扔掉前面的2行,返回后面的2行;

  注:对于数据量不大的时候,这样简单的写法是可以的。但是当大数据的时候,就会影响性能。

    如果是limit 100000,100,需要扫描100100行,在一个高并发的应用里,每次查询需要扫描超过10W行,性能肯定大打折扣。

(三)、大数据量  提高分页效率的方法

  1、对于是可以比较的主键(索引)字段可用这种方法:

    SELECT * FROM table WHERE id BETWEEN (currentPage-1)*pageSzie   AND  currentPage*pageSzie;

或者:select id,title from collect where id>=(select id from collect order by id limit 90000,1) limit 10;   :90000:获得起点的位置

  2、Join 连接查询

SELECT * FROM `edi_test_task`  AS t1
RIGHT JOIN (SELECT task_id FROM `edi_test_task` ORDER BY task_id desc LIMIT 600,9) AS t2 on t1.task_id=t2.task_id

意思:先通过查询得到索引的Id,然后根据索引获得所需的数据。

3、创建索引表

  建一个索引表: t (id,title,vtype) 并设置成定长,然后做分页,分页出结果再到 collect 里面去找info 。 【复合索引,如果有where字句的话,可以使用复合索引。】

Mysql DB2等数据库分页的实现的更多相关文章

  1. 关于PDF.NET开发框架对Mysql Sqlite PostgreSQL数据库分页支持的个人看法

    关于PDF.NET开发框架的名字由来  在设计www.pwmis.com站点的时候,考虑到架构的兼容性和将来升级的可能性,最重要的是没有足够的时间去为网站添加和维护很多复杂的程序,所以在借鉴前人成功经 ...

  2. oracle、mysql、db2三大数据库分页方法的整理

    最近项目中经常会涉及到代码中支持三种数据库的分页的功能,自己整理了关于三种数据库的分页的写法,分享给大家,以供大家使用.希望能帮到更多的码友! 先来看一个代码片段: String page = ala ...

  3. 使用Jsp/Js/Ajax/Json/Jquery/Easyui + Servlet + JDBC + Lucene/Mysql/Oracle完成数据库分页

    package loaderman.action; import java.io.IOException; import java.io.PrintWriter; import java.util.L ...

  4. Oracle数据库和DB2数据库分页SQL的区别举例

    --------------------------ORACLE数据库分页SQL举例------------------------------------------------ SELECT * ...

  5. MySQL、SqlServer、Oracle三大主流数据库分页查询

    在这里主要讲解一下MySQL.SQLServer2000(及SQLServer2005)和ORCALE三种数据库实现分页查询的方法.可能会有人说这些网上都有,但我的主要目的是把这些知识通过我实际的应用 ...

  6. Statement和PreparedStatement的特点 MySQL数据库分页 存取大对象 批处理 获取数据库主键值

    1 Statement和PreparedStatement的特点   a)对于创建和删除表或数据库,我们可以使用executeUpdate(),该方法返回0,表示未影向表中任何记录   b)对于创建和 ...

  7. ORACLE/MYSQL/DB2等不同数据库取前几条记录

    选取数据库中记录的操作是最基础最频繁的,但往往实际应用中不会这么简单,会在选取记录的时候加上一些条件,比如取前几条记录,下面就总结了如何在ORACLE/MYSQL/DB2等一些热门数据库中执行取前几条 ...

  8. 如何将DB2的数据库转换到mySQL中?

    经过几次尝试最终找到解决的办法,因为网上并没有详细说明,所以下面我将详细的步骤记录如下: 1. 大前提是你已经安装好DB2服务器和mySQL服务器,现在只是借用Navicat for MySQL这个软 ...

  9. MySQL 数据库 分页查询

    在使用MySQL 进行数据库分页查询的时候最主要是使用LIMIT子句进行查询: 首先来看一下LIMIT: LIMIT子句可以用来限制由SELECT语句返回过来的数据数量,它有一个或两个参数,如果给出两 ...

随机推荐

  1. Eclipse插件Subclipse各版本插件下载地址以及与Subverison的对应关系

    Subclipse 1.4.x includes and requires Subversion 1.5.x client features and working copy format. Subc ...

  2. Unity优化之纹理集

    发现了一个比较好用的插件:ProDrawCallOptimizer. 它是用来合并纹理和材质的,而且用起来非常简便. 操作方法: 1.将包拖入Unity5中:ps:由于版本问题,直接双击包时导入不了 ...

  3. Linux 新手常用命令

    ubuntu的root用户默认是禁止的,需要手动打开才行 事实上ubuntu下的所有操作都用不到root用户,由于sudo的合理使用,避免了root用户下误操作而产生的毁灭性问题 root账号启用方法 ...

  4. Maven的安装与使用(ubuntu)

    一.安装Maven 1.下载Maven,http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-m ...

  5. [Yii][RBAC]Yii中应用RBAC完全指南

    开端筹办 Yii供给了强大的设备机制和很多现成的类库.在Yii中应用RBAC是很简单的,完全不须要再写RBAC代码.所以筹办工作就是,打开编辑器,跟我来. 设置参数.建树数据库 在设备数组中,增长以下 ...

  6. CentOS搭建GIT服务器【二】-HTTP源码访问及smart http协议

    搭建完git之后,我们希望可以在线看见源码,以及使用http协议上传下载源码. 安装gitweb.httpd: yum install gitweb yum install httpd gitweb默 ...

  7. cdn加速对门户网站产生的影响

    满意的用户体验是门户网站吸引和留住用户的必备条件.据统计,如果等待网页打开的时间超过8秒,将会有超过30%的用户放弃等待,造成严重的用户流失,降低了用户的体验度和忠诚度.门户网站内容涉及面多,涵盖文字 ...

  8. HDU 2298 Toxophily

    题目: Description The recreation center of WHU ACM Team has indoor billiards, Ping Pang, chess and bri ...

  9. onethink对二维数组结果集进行排序

    <?php /** * 对查询结果集进行排序 * @access public * @param array $list 查询结果 * @param string $field 排序的字段名 * ...

  10. Java Development Kit(JDK) 8 新特性(简述)

    一.接口的默认方法 Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法. 示例如下: interface Formula { calcul ...