MySQL分页查询

mysql的分页查询需要用到关键字 limit ,limit其实是mysql给的一个函数,就像是count(*)求和一样的函数,可以传入参数使用。

LIMIT 可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1)

使用limit进行分页查询

第一种情况,只传一个参数:
SELECT * FROM 表 LIMIT 2
该结果返回前两条数据。

第二种情况 也就是我们分页的sql实现
SELECT * FROM 表 LIMIT 2,10
查询第1条到第10条的数据的sql是:select * from table limit 0,10; ->对应我们的需求就是查询第一页的数据:select * from table limit (1-1)*10,10;

查询第10条到第20条的数据的sql是:select * from table limit 10,20; ->对应我们的需求就是查询第二页的数据:select * from table limit (2-1)*10,10;

查询第20条到第30条的数据的sql是:select * from table limit 20,30; ->对应我们的需求就是查询第三页的数据:select * from table limit (3-1)*10,10;
所以我们可以清楚的得到
*分页sql格 select * from table limit (page-1)pageSize,pageSize; 其中page是页码,pageSize是每页显示的条数。

使用limit的效率问题

如果你仅仅知道limit,分页就使用limit确实很简单,但是面对大量数据的时候要对sql进行优化,提高查询效率,比如下面的sql的执行
select * from 表 limit 10000,10;
扫描前面10010行,返回最后10行,我懵了,前面查的1万行就直接不用

在数据量级到一定程度,limit方法会让查询变的没有效率。也就是说,分页越往后,查询到饿速度越慢。
我们要提高效率可以使用子查询

一般我们表种都有主键id,以下你可以自己去验证。
select * from 表 where id = 1 limit 200000 ,20;
select id from 表 where id = 1 limit 200000 ,20;

第二个只查询id肯定比第一个查询所有字段的效率要高,这个我们都应该知道。

利用第二种查询id的方法,进行优化limit的语句。
SELECT * FROM 表 WHERE ID > =(select id from xxx limit 1000000, 1) limit 20;
SELECT * FROM 表 a JOIN (select id from 表 limit 1000000, 20) b ON a.ID = b.id;

MySQL分页查询效率相关推荐

  1. mysql中如何分页查询_MySQL_mysql分页原理和高效率的mysql分页查询语句,以前我在mysql中分页都是用的 l - phpStudy...

    mysql分页原理和高效率的mysql分页查询语句 以前我在mysql中分页都是用的 limit 100000,20这样的方式,我相信你也是吧,但是要提高效率,让分页的代码效率更高一些,更快一些,那我 ...

  2. java mysql 分页查询_MySQL分页查询方法及优化

    当数据库的数据量很大时,一次性查询结果就会变得很慢,为了提高查询效率,我们可以使用MySQL的分页查询功能.本文就为大家带来MySQL分页查询方法及优化. 推荐阅读: 分页查询方法: 在MySQL中, ...

  3. mysql分页查询报错,及解决

    mysql分页查询报错: 前提: 1.每页1000条数据 2.查到57页的时候,就报错了 以下是错误信息: org.springframework.jdbc.UncategorizedSQLExcep ...

  4. MySQL分页查询方法及优化

    MySQL分页查询方法及优化 http://uusama.com/458.html

  5. 零基础带你学习MySQL—分页查询(十八)

    零基础带你学习MySQL-分页查询(十八)

  6. 提高MySQL数据库查询效率的几个技巧(转载)

    [size=5][color=Red]提高MySQL数据库查询效率的几个技巧(转)[/color][/size]       MySQL由于它本身的小巧和操作的高效, 在数据库应用中越来越多的被采用. ...

  7. java的mysql分页查询语句怎么写_java的mysql连库 增删改查语句、分页查询语句大全...

    //代码复制出来,修改一下bean,加载一下jar包,能直接用的,不懂加我Q 983331283 package cn.tootoo.entity; public class Page { priva ...

  8. MySQL分页查询商品订单列表

    MySQL分页查询商品订单列表 题目 简单表设计并且写出sql语句,购物订单系统里面"所有订单"功能,一个订单包含多个产品,一个产品也可能被不同的订单包含,请写出针对于产品名称搜索 ...

  9. oracle sql 全是子查询查询速度太慢如何优化_如果面试官问你如何优化mysql分页查询,请把这篇文章甩给他!...

    在我们日常开发中,分页查询是必不可少的,可以说每干后端程序猿大部分时间都是CURD,所以分页的查询也接触的不少,你们都是怎么实现的呢?前不久的一段时间,我的一个同事突然找我寻求帮助,他说他写的sql查 ...

  10. mysql分页查询语法

    一.limit语法 SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset LIMIT 子句可以被用于强制 SELECT 语句返回指 ...

最新文章

  1. 企业级工作流解决方案(十五)--集成Abp和ng-alain--Abp其他改造
  2. python画图代码turtle-Python使用Turtle图形函数画图 颜色填充!
  3. 图片的裁剪、旋转、平移、模糊
  4. Updater Application Block for .NET
  5. 将Windows8安装在手持终端上
  6. H3CNE新版本V6.0与旧版本V5.1的区别
  7. 基于javaSwing+文本存储的学生信息管理系统设计实现
  8. Dockerfile 中 配置安装 php 扩展
  9. python判断数据是否在另一个集合中_python判断一个集合是否包含了另外一个集合中所有项的方法...
  10. paip.提升性能--多核cpu中的java/.net/php/c++编程
  11. ADSL常见问题 经典故障
  12. 信息学奥赛一本通在线评测平台的一些bug
  13. 如何编写产品说明文档?
  14. 【微信篇】电脑版微信的照片视频文件位置变化
  15. JS验证18位身份证号的正确性
  16. 百度地图离线开发V2.0
  17. Python语言程序设计第二章编程题
  18. word embedding(详细讲解word embedding)
  19. 使用jQuery重置(reset)表单的方法
  20. 升级Mac内置的vim

热门文章

  1. 电视家3.0怎么安装到电视上?常用三种方法介绍
  2. 幸运抽奖java_Java 幸运抽奖项目
  3. Linux内核学习(一)编译内核并运行一个最小系统
  4. 如何系统学习Spring框架
  5. loader-wizard.php,安装ioncube扩展
  6. theano java_Theano:调用Theano函数的论据
  7. xml格式转json
  8. 基于深度学习的长江干线水位数据回归预测
  9. fastgame文档
  10. WHQL之无需HLK结果就可获得微软驱动数字签名+Cannot specify [ClassInstall32] section解决