MySQL与分页

2016-02-19 18:02 3 1 收藏

生活已是百般艰难,为何不努力一点。下面图老师就给大家分享MySQL与分页,希望可以让热爱学习的朋友们体会到设计的小小的乐趣。

【 tulaoshi.com - 编程语言 】

  最基本的分页方式:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  SELECT ... FROM ... WHERE ... ORDER BY ... LIMIT ...

  在中小数据量的情况下,这样的SQL足够用了,唯一需要注意的问题就是确保使用了索引:

  举例来说,如果实际SQL类似下面语句,那么在category_id, id两列上建立复合索引比较好:

SELECT * FROM articles WHERE category_id = 123 ORDER BY id LIMIT 50, 10

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  子查询的分页方式:

  随着数据量的增加,页数会越来越多,查看后几页的SQL就可能类似:

SELECT * FROM aricles WHERE category_id = 123 ORDER BY id LIMIT 10000, 10

  一言以蔽之,就是越往后分页,LIMIT语句的偏移量就会越大,速度也会明显变慢。

  此时,我们可以通过子查询的方式来提高分页效率,大致如下:

SELECT * FROM articles WHERE category_id = 123 AND id = (
  SELECT id FROM articles ORDER BY id LIMIT 10000, 1
) LIMIT 10

来源:https://www.tulaoshi.com/n/20160219/1616666.html

延伸阅读
标签: PHP
似乎讨论分页的人很少,难道大家都沉迷于limit m,n? 在有索引的情况下,limit m,n速度足够,可是在复杂条件搜索时, where somthing order by somefield somefield mysql会搜遍数据库,找出所有符合条件的记录,然后取出m,n条记录。 如果你的数据量有几十万条,用户又搜索一些很通俗的词, 然后要依次读最后几页重温旧梦。。。my...
复杂条件搜索时,where somthing order by somefield+somefieldmysql会搜遍数据库,找出“所有”符合条件的记录,然后取出m,n条记录。如果你的数据量有几十万条,用户又搜索一些很通俗的词,然后要依次读最后几页重温旧梦。mysql该很悲壮的不停操作硬盘。 所以,可以试着让mysql也存储分页,当然要程序配合。 ASP的分页:在ASP...
一、什麽是 MySQL MySQL (发音为 "My Ess Que Ell")是 Tcx 公司开发的一个多人使用、多执行绪的 SQL 资料库 Server。MySQL 主要的目标在快速、稳定和容易使用。 MySQL 可在此 http://www.mysql.net/ 取得。 二、MySQL 的安装 本文所使用的 MySQL 版本为 mysql-3.22.27.tar.gz(原始码档),作...
MySQL GUI工具很多,本文就常用的Navicat for MySQL与MySQL GUI Tools的特色功能做一个详细介绍与比较。 一、MySQL GUI Tools MySQL官方提供的一个可视化界面的MySQL数据库管理控制台,提供了四个图形化应用程序,这些图形化管理工具可以大大提高数据库管理、备份、迁移和查询效率。它们分别是: ◆ MySQL Migration Toolkit ◆ MySQL Admi...
4.5 调度与锁定问题 前面各段主要将精力集中在使个别的查询更快上。MySQL还允许影响语句的调度特性,这样会使来自几个客户机的查询更好地协作,从而单个客户机不会被锁定太长的时间。更改调度特性还能保证特定的查询处理得更快。我们先来看一下MySQL的缺省调度策略,然后 来看看为改变这个策略可使用什么样的选项。出于讨论的目...

经验教程

493

收藏

37
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部