首页 > 数据库 >MySQL 分页优化

MySQL 分页优化

时间:2023-09-21 16:34:29浏览次数:48  
标签:10 分页 记录 page MySQL 优化 id SELECT

1.普通翻页 limit

SELECT id FROM page_test_t ORDER BY id LIMIT 1000,10

例如:limit 1000,10 ,会从数据文件中查询1010 行记录,只返回的10记录,前1000行记录会被抛弃掉。

2.延迟关联

作为子查询或视图 自关联

适合前后翻页、跳页

可以先按照条件分页查询出主键,然后根据主键的再去关联表,查询出所有需要列的记录数,这样可以避免扫描太多的数据页。按照要求条件,可以写出这样的例子 SQL:

SELECT SQL_NO_CACHE  a.* FROM `page_test_t` a,(SELECT id FROM page_test_t ORDER BY id LIMIT 600000,10) b WHERE a.id=b.id ORDER BY a.id ;

3.书签记录

使用id自增的特性

适合前后翻页

“书签记录”指我们可以用一个临时变量来存储上一次取数记录的位置,然后在获取下一页的时候,可以根据这个值,来获取大于这个值的下一页记录(上一页类似),直接从该值以后开始扫描。例如,假设我们上一次获取到了分页 limit 599990,10 的记录,最大的值的id为 1690344(这里的值作为了一个书签记录),则我们获取 limit 600000,10 的记录可以这样写:

SELECT SQL_NO_CACHE  * FROM `page_test_t`  where id>1690344 ORDER BY id  LIMIT 10 ;


链接指路:从官方文档中探索MySQL分页的几种方式及分页优化 - kanlon - 博客园 (cnblogs.com)

标签:10,分页,记录,page,MySQL,优化,id,SELECT
From: https://www.cnblogs.com/sumingyi/p/17720269.html

相关文章

  • MySQL数据库查询对象空值判断与Java代码示例【含面试题】
    AI绘画关于SD,MJ,GPT,SDXL百科全书面试题分享点我直达2023Python面试题2023最新面试合集链接2023大厂面试题PDF面试题PDF版本java、python面试题项目实战:AI文本OCR识别最佳实践AIGamma一键生成PPT工具直达链接玩转cloudStudio在线编码神器玩转GPUAI绘画、AI讲话、......
  • Mysql 5.7.35-:使用HugePage:配置关键点、配置过程
    在Linux中,让应用程序——尤其是mysqld这类的数据库应用——使用HugePage,最大的好处在于:1:内存不会被回收,不会被交换到swap分区2:因为是HugePage,大页,2M起步,如此,就能大大减轻相应应用程序所分配内存的linux内核管理负担! #------------------------------------------------------......
  • mysql3-4
    表定义表:是数据库最基本的组成单元,数据库是用来存储数据的,数据库中有很多表,每一个表都是一个独立的单元,表也是一个结构化的文件,由行和列组成,行称为数据或记录,列称为字段,字段又包括:字段名称、字段类型、长度、约束。 创建表语法格式:createtable表名称(字段名类型(长度)约......
  • MySQL中row_number()的实现,查询记录排序行数
    MySQL中row_number()的实现,查询记录排序行数时间  2019-12-06标签 mysql row number 实现 查询 记录 排序 行数 栏目 MySQL 繁體版原文   https://my.oschina.net/u/3087202/blog/1842169  在MySQL8.0之前是有没row_number()这个窗口函数的,若是想实......
  • MySQL高级13-MySQL管理工具
    一、系统数据库MySQL数据库安装完成后,自带了四个数据库:mysql数据库:存储MySQL服务器正常运行所需要的各种信息如时区、主从、用户、权限等infomation_schema:提供了访问数据库元数据的各种表和视图,包含数据库、表、字段类型及访问权限等performance_schema:为MySQL服务器运......
  • 查看mysql资源占用高的线程及其详细信息
    结合操作系统线程查看mysql中的sql资源 消耗 ( 5.7 才可以,5.7时   performance_schema.threads表 才加入的  thread_os_id 系统线程字段 1--1、top-H查看具体线程的CPU消耗2[root@hostmysql80mysql]#top-H345--2、iotop-umysql查看具体......
  • MySQL压缩包安装问题记录Can't connect to MySQL server on localhost (10061)解决方
    本文章向大家介绍MySQL问题记录--Can'tconnecttoMySQLserveronlocalhost(10061)解决方法,主要包括MySQL问题记录--Can'tconnecttoMySQLserveronlocalhost(10061)解决方法使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下......
  • mysql 时间函数
    MySQL日期跟时间函数(一)作者:Mr.ZhangMySQL日期跟时间的样式在MySQL中有很多有用处的日期跟时间函数。我们常常看到许多应用于日期的计算是在代码方面上进行的,但是其实他们完全可以使用MySQL中自带的函数来实现。在我们实际的查看MySQL的时间跟日期函数之前,先让我们看看MySQL的......
  • 【mysql】基础
    基本命令#ROOT用户进入数据库mysql-uroot-p#使用用户登录数据库mysql-u用户名-p#重启mysqlsudoservicemysqlrestart#创建数据库createdatabase数据库名字charactersetutf8mb4collateutf8mb4_unicode_ci;#进入数据库usemysql_name;#查看所......
  • 用 Webpack 优化网站的技术
    代码分割代码分割是一种将代码分成更小、更易于管理的块的技术,这些块可以按需加载。这可以通过减少用户访问您的网站时需要加载的代码量来帮助提高网站性能。要在Webpack中使用代码分割,可以使用splitChunks配置选项。此选项允许您指定应将哪些模块拆分为单独的块。您还可以......