mysql取出指定范围数据limit offset分析与运用

传统写法

limit 偏移量,取出条数

SELECT * FROM yundou_management.service_order where order_status=1 order by id asc limit 108,8 ;

mysql5之后支持新写法,让人更容易理解

limit 取出条数 offset 偏移量

SELECT * FROM yundou_management.service_order where order_status=1 order by id asc limit 8 offset 108 ;

假如从第一条开始获取指定条数量,偏移量为0

SELECT * FROM yundou_management.service_order where order_status=1 order by id asc limit 0,8 ;
SELECT * FROM yundou_management.service_order where order_status=1 order by id asc limit 8 offset 0 ;

也可以简写成如下

SELECT * FROM yundou_management.service_order where order_status=1 order by id asc limit 8;


随着偏移量越来越大,查询速度会越来越慢,解决方案在之前的文章已经介绍过。

参考:mysql量级数据表的分页优化方案

原文地址:https://blog.51cto.com/phpme/2421747

时间: 2024-07-30 11:01:51

mysql取出指定范围数据limit offset分析与运用的相关文章

Mysql的ORDER BY 和Limit offset的一个问题,拿出来和大家研究下

今天碰到个很怪异的问题,如题关于mysql的ORDER BY 语句和Limit offset语句问题. bug再现下:select * from A a where a.culomn1 limit 5 offset 0 order by a.culomn1 asc 则出现sqlException,提示order by 这行有问题. 若将语句改为如下,将limit语句和order by 语句调换: select * from A a where a.culomn1 order by a.culom

向mysql中批量插入数据的性能分析

MYSQL批量插入数据库实现语句性能分析 假定我们的表结构如下 代码如下   CREATE TABLE example (example_id INT NOT NULL,name VARCHAR( 50 ) NOT NULL,value VARCHAR( 50 ) NOT NULL,other_value VARCHAR( 50 ) NOT NULL) 通常情况下单条插入的sql语句我们会这么写: 代码如下   INSERT INTO example(example_id, name, valu

MySQL 搜索指定时间范围数据, 时间字段有索引但是还是很费时

问题分析 所遇情况: 数据库版本:5.6.38 查询时使用时间类型,在status.closed.playback_state字段上都有索引 几种查询语句 explain (select count(*)         from session         where status = 2           and playback_state = 1           and closed > '2018/10/17'           and closed < '2018-10

超实用--删除MYSQL中指定的数据的全部表

作过的人都知道,重复测试数据库的苦恼. 用法:# Usage: ./script user password dbnane mysql.nixcraft.in ~~~~~~~~~~~~~ #!/bin/bash # 删除mysql中所有表 # 示例: # Usage: ./script user password dbnane # Usage: ./script user password dbnane server-ip # Usage: ./script user password dbna

mysql 判断指定条件数据存不存在,不存在则插入

折腾了半天终于把这个给折腾顺了,但是后来发现用不了竟然...悲剧啊,但是还是要记录下加深记忆 insert into table1 (field1, field2,field3) select ?field1,?field2,?field3 from temp where not exists (select field1,field2,field3 from table1 where field1=?field1 and field2=?field2 and field3=?field3);

mysql取前几行数据limit用法

mysql取前几行数据limit用法 order by id desc limit 10 按照id的倒序排序 取出前10条 order by id desc limit 0,10 按照id的倒序排序 取出前10条 order by id limit 5,10 按照id的正序排序 从第5条开始取10条

mysql 行号 获取指定行数据

mysql 行号的实现 Select id,(@rowNum:[email protected]+1) as rowNo From first,(Select (@rowNum :=0) ) bOrder by first.id Desc 这样就可以实现mysql 的行号 获取指定行的数据可以使用limit 具体的使用如下: select * from first limit num,1 即可 mysql 行号 获取指定行数据,布布扣,bubuko.com

MySQL 学习笔记 (limit offset)

select * from table limit (10000,10);这样是很慢的,因为要定位 比较快的写法是 select * from table where id >=(select * from table limit (10000,1) ) limit 10;不要问题为什么! 因为目前也用不到.最直接的方法还是建议把数据弄小,不然就设计一些算法来计算第几应该有哪些资料,直接定位获取 . MySQL 学习笔记 (limit offset)

实战:mysql统计指定架构的所有表的数据和索引大小情况

#统计指定架构的所有表的数据和索引大小情况 #tablesize.sh #!/bin/sh #[email protected] if [ "$#" -gt 2 ];then echo "**********************************" echo "too many input parameters" echo "**********************************" echo "