MySQL分页查询效率
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分页查询效率相关推荐
- mysql中如何分页查询_MySQL_mysql分页原理和高效率的mysql分页查询语句,以前我在mysql中分页都是用的 l - phpStudy...
mysql分页原理和高效率的mysql分页查询语句 以前我在mysql中分页都是用的 limit 100000,20这样的方式,我相信你也是吧,但是要提高效率,让分页的代码效率更高一些,更快一些,那我 ...
- java mysql 分页查询_MySQL分页查询方法及优化
当数据库的数据量很大时,一次性查询结果就会变得很慢,为了提高查询效率,我们可以使用MySQL的分页查询功能.本文就为大家带来MySQL分页查询方法及优化. 推荐阅读: 分页查询方法: 在MySQL中, ...
- mysql分页查询报错,及解决
mysql分页查询报错: 前提: 1.每页1000条数据 2.查到57页的时候,就报错了 以下是错误信息: org.springframework.jdbc.UncategorizedSQLExcep ...
- MySQL分页查询方法及优化
MySQL分页查询方法及优化 http://uusama.com/458.html
- 零基础带你学习MySQL—分页查询(十八)
零基础带你学习MySQL-分页查询(十八)
- 提高MySQL数据库查询效率的几个技巧(转载)
[size=5][color=Red]提高MySQL数据库查询效率的几个技巧(转)[/color][/size] MySQL由于它本身的小巧和操作的高效, 在数据库应用中越来越多的被采用. ...
- java的mysql分页查询语句怎么写_java的mysql连库 增删改查语句、分页查询语句大全...
//代码复制出来,修改一下bean,加载一下jar包,能直接用的,不懂加我Q 983331283 package cn.tootoo.entity; public class Page { priva ...
- MySQL分页查询商品订单列表
MySQL分页查询商品订单列表 题目 简单表设计并且写出sql语句,购物订单系统里面"所有订单"功能,一个订单包含多个产品,一个产品也可能被不同的订单包含,请写出针对于产品名称搜索 ...
- oracle sql 全是子查询查询速度太慢如何优化_如果面试官问你如何优化mysql分页查询,请把这篇文章甩给他!...
在我们日常开发中,分页查询是必不可少的,可以说每干后端程序猿大部分时间都是CURD,所以分页的查询也接触的不少,你们都是怎么实现的呢?前不久的一段时间,我的一个同事突然找我寻求帮助,他说他写的sql查 ...
- mysql分页查询语法
一.limit语法 SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset LIMIT 子句可以被用于强制 SELECT 语句返回指 ...
最新文章
- 企业级工作流解决方案(十五)--集成Abp和ng-alain--Abp其他改造
- python画图代码turtle-Python使用Turtle图形函数画图 颜色填充!
- 图片的裁剪、旋转、平移、模糊
- Updater Application Block for .NET
- 将Windows8安装在手持终端上
- H3CNE新版本V6.0与旧版本V5.1的区别
- 基于javaSwing+文本存储的学生信息管理系统设计实现
- Dockerfile 中 配置安装 php 扩展
- python判断数据是否在另一个集合中_python判断一个集合是否包含了另外一个集合中所有项的方法...
- paip.提升性能--多核cpu中的java/.net/php/c++编程
- ADSL常见问题 经典故障
- 信息学奥赛一本通在线评测平台的一些bug
- 如何编写产品说明文档?
- 【微信篇】电脑版微信的照片视频文件位置变化
- JS验证18位身份证号的正确性
- 百度地图离线开发V2.0
- Python语言程序设计第二章编程题
- word embedding(详细讲解word embedding)
- 使用jQuery重置(reset)表单的方法
- 升级Mac内置的vim
热门文章
- 电视家3.0怎么安装到电视上?常用三种方法介绍
- 幸运抽奖java_Java 幸运抽奖项目
- Linux内核学习(一)编译内核并运行一个最小系统
- 如何系统学习Spring框架
- loader-wizard.php,安装ioncube扩展
- theano java_Theano:调用Theano函数的论据
- xml格式转json
- 基于深度学习的长江干线水位数据回归预测
- fastgame文档
- WHQL之无需HLK结果就可获得微软驱动数字签名+Cannot specify [ClassInstall32] section解决