首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    浅谈MySQL分页查询

    MySQL系列文章到目前已经更新十几篇,从数据类型谈到了备份恢复再到主从同步分库分表,从本篇开始,会花几篇重点谈谈MySQL基础部分,而本篇我们重点来讲讲我们日常开发中最常见的一种查询:分页查询。...,可以减少回表次数并且减少Mysql扫描那些无效的行数: ?...,所以显而易见使用子查询进行分页效率比直接使用limit分页效率高很多。...比如客户端查询第一页,id传0,则后端可以使用下列sql语句: select * from aok_score_info limit 0, 10; 由于查询时第一页的数据,所以扫描速度很快,之后页数查询传当前页数...id最大值,比如传参id为9999,表示上一页的最大id为9999,那么我们就从9999开始顺推查询,可以看到中间删掉的3000条记录都会直接跳过,所以不会影响我们查询的正确性,最关键的是id是主键上面有索引

    4.8K20

    MySQL(联合查询、子查询、分页查询)

    目录 联合查询 子查询 分页查询 联合查询 联合查询是指将多个查询结果合并成一个结果集(二维表),通常出现在统计分析中。 语法: 查询语句1 UNION 查询语句2 UNION ......有返回结果,执行select* from b_user; select * from b_order where order_id>10没有返回结果,执行select* from b_user; 返回空 分页查询...如果数据量过大(100亿),如果一次性显示10亿条数据,(100亿条数据本身从数据库中读取时慢【分库 分表】,将100亿条新闻展示在网页的过程也是很慢的) 手工分页 百度新闻、微商城、淘宝这些根据滚动条的位置来刷新数据...滚动条分页 基础语法: SELECT 查询字段列表 FROM 表名 WHERE 筛选条件 GROUP BY 分组列表 HAVING 筛选条件 ORDER BY 排序列表 LIMIT offset...; 如果offset为0 SELECT * FROM b_user LIMIT 2; 注意: 在SQL Server中使用top关键字进行分页;所谓top 7,代表查询前7条记录。

    21.9K20

    使用MySQL实现分页查询

    使用MySQL实现分页查询 本文关键字:MySQL、分页查询、真分页、假分页、LIMIT 在项目开发当中,经常要实现分页功能,在面试时也会经常被问到,什么是分页。...真分页 真分页指的是每次在进行翻页时都只查询出当前页面的数据,特点就是与数据库的交互次数较多,但是每次查询的数据量较少,数据也不需要一直保存在内存中。...缓存层 真分页和假分页都要和数据库进行交互,对于真分页来说不需要担心数据同步的问题,因为每次都是查询出最新的,但是数据库的负担会很重,尤其是用户量大的情况下。...在对数据库中的数据进行修改后,要将变更后的数据及时同步到缓存层,在进行数据查询时从缓存层获取。 ? 二、MySQL实现分页 本文将介绍如何通过真分页的方式,每次取出所需数据。...对于不同的数据,实现分页有不同的方式,在MySQL中可以使用LIMIT来限制查询出的数据。 1. LIMIT用法 LIMIT出现在查询语句的最后,可以使用一个参数或两个参数来限制取出的数据。

    18.8K52

    oracle、mysql 分页查询比较

    1、 Oracle的分页查询语句 分页查询格式: SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE...ROWNUM = 21控制分页查询的每页的范围。 上面给出的这个分页查询语句,在大多数情况拥有较高的效率。分页的目的就是控制输出结果集大小,将结果尽快的返回。...那么在大部分的情况下,对于分页查询选择NESTED LOOP作为查询的连接方法具有较高的效率(分页查询的时候绝大部分的情况是查询前几页的数据,越靠后面的页数访问几率越小)。...* FROM TABLE_NAME) A WHERE ROWNUM <= 40 ) WHERE RN >= 21 2、 MySQL的分页查询语句 在PhpMyAdmin里执行如下SQL: SELECT...1000000 , 1(6.7732 秒) SELECT pid FROM `cdb_posts` ORDER BY pid LIMIT 1000000 , 1(0.5838 秒) 有网友说如果是MySQL

    3.7K90

    MySQL——优化嵌套查询和分页查询

    ,是因为MySQL不需要在内存中创建临时表来完成这个逻辑上需要两个步骤的查询工作;并且Not exists表示MYSQL优化了LEFT JOIN,一旦它找到了匹配LEFT JOIN标准的行, 就不再搜索了...优化分页查询 在MySQL中做分页查询,MySQL 并不是跳过 offset 行,而是取 offset+N 行,然后返回放弃前 offset 行,返回 N 行,那当 offset 特别大的时候,效率就非常的低下...由此可见MySQL的分页处理并不是十分完美,需要我们在分页SQL上做一些优化,要么控制返回的总页数,要么对超过特定阈值的页数进行 SQL 改写。...explainselect*fromfilm orderbytitle limit410,10; 现在需要多传一个参数,就是上一页(第41页)的最后一条数据的主题title, SQL可以改写为: explainselect...总结 对于嵌套查询和分页查询的优化,归根结底就是遵循SQL优化原则之一——减少回表查询的I/O次数。对于分页查询优化,更建议使用第一种优化方案,性能更好,稳定性更高。 参考 《深入浅出MySQL》

    4.1K21

    oracle、mysql 分页查询比较

    1、 Oracle的分页查询语句 分页查询格式: SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE...ROWNUM = 21控制分页查询的每页的范围。 上面给出的这个分页查询语句,在大多数情况拥有较高的效率。分页的目的就是控制输出结果集大小,将结果尽快的返回。...那么在大部分的情况下,对于分页查询选择NESTED LOOP作为查询的连接方法具有较高的效率(分页查询的时候绝大部分的情况是查询前几页的数据,越靠后面的页数访问几率越小)。...* FROM TABLE_NAME) A WHERE ROWNUM <= 40 ) WHERE RN >= 21 2、 MySQL的分页查询语句 在PhpMyAdmin里执行如下SQL: SELECT...1000000 , 1(6.7732 秒) SELECT pid FROM `cdb_posts` ORDER BY pid LIMIT 1000000 , 1(0.5838 秒) 有网友说如果是MySQL

    3.7K80

    mysql慢查询优化-分页慢查询篇

    前提介绍 为何分页查询在测试环境没事,在生产上几千万的数据就出现了问题 在平时开发时,由于数据量没有那么大,所以测试有时候会不到位,比如用到的分页查询,使用不规范时,数据量越大,查询越慢,而且有 长时间进程不结束...,会导致内存不足等风险 传统分页查询:SELECT c1,c2,cn… FROM table LIMIT n,m MySQL的limit工作原理就是先读取前面n条记录,然后抛弃前n条,读后面m条想要的,...因为要取出所有字段内容,这种需要跨越大量数据块并取出 推荐分页查询方法 通过直接根据索引字段定位后,才取出相应内容,效率自然大大提升。...1、尽量给出查询的大致范围 SELECT c1,c2,cn… FROM table WHERE id>=20000 LIMIT 10; 2、子查询法 SELECT c1,c2,cn… FROM table...id from product limit 866613, 20) b ON a.ID = b.id 3、高性能MySQL一书中提到的只读索引方法 优化前SQL: SELECT c1,c2,cn… FROM

    4.3K21
    领券