1.limit的几种形式
limit m,n 从m条后一条往后取n条数据,如0,10就是从第一条开始取10条数据。
limit n --> limit 0,n --> limit 0 offset n
2.问题:
我们都知道MySQL分页使用limit,是不是所有的分页我们都可以使用limit呢?
3.结论:
当然不是啦,大表的时候limit 10000,10 的时候MYSQL会扫描满足条件的100010行然后取后面的10行,
如果limit的这个值很大的话,当然扫描的行数就变多了,所以查询时间会变慢。
4.优化
整个表的数据量在100W条左右。
方法一:子查询
从 SELECT * FROM `mytest`.`table_rm001` ORDER BY id DESC LIMIT 100000,50;
到 SELECT * FROM `mytest`.`table_rm001` where id > (select id from `mytest`.`table_rm001` order by id limit 100000,1) limit 50
多次测试了下时间发现性能还是提高很多的。
第一条SQL平均在400ms左右,第二条SQL平均在60ms左右。
方法二:超过一半反向查找
正向查找: (当前页 – 1) * 页长度
反向查找: 总记录 – 当前页 * 页长度
建表语句: CREATE TABLE `table_rm001` ( `id` int(11) NOT NULL AUTO_INCREMENT, `varchar` varchar(32) DEFAULT NULL, `tinyint` tinyint(4) DEFAULT NULL, `smallint` smallint(6) DEFAULT NULL, `mediumint` mediumint(9) DEFAULT NULL, `bigint` bigint(20) DEFAULT NULL, `integer` int(11) DEFAULT NULL, `float` float DEFAULT NULL, `real` double DEFAULT NULL, `decimal` decimal(10,0) DEFAULT NULL, `boolean` tinyint(1) DEFAULT NULL, `date` date DEFAULT NULL, `datetime` datetime DEFAULT NULL, `time` time DEFAULT NULL, `year` year(4) DEFAULT NULL, `text` text, `blob` blob, PRIMARY KEY (`id`), KEY `idx_float` (`float`), KEY `idx_varchar` (`varchar`) ) ENGINE=MyISAM AUTO_INCREMENT=3000001 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT |
相关推荐
本文档针对mysql分页之limit慢的问题,使用联合索引在大数据量的情况下优化limit分页的性能
以下是一些针对MySQL `LIMIT` 分页速度慢的优化方法: 1. **避免大`OFFSET`值**: 当`OFFSET`值很大时,MySQL会跳过很多行才能到达需要返回的数据。例如,`LIMIT 200000, 10`需要扫描200010行,这是非常低效的。...
SELECT语句是MySQL数据库中最常用的语句之一。SELECT语句的优化是非常重要的。通过优化SELECT语句,可以提高数据库的性能和效率。 三、IN和EXIST语句 IN和EXIST语句是MySQL数据库中常用的语句。IN语句用于判断某个...
总的来说,这份"Mysql优化 PPT"应该是一份全面的指南,帮助读者理解MySQL性能优化的各个方面,并提供实用的解决方案。通过深入学习和实践,我们可以显著提升MySQL数据库的运行效率,从而提高整个应用系统的性能。
MySQL GUI Tools是一款强大的图形用户界面工具集合,专为MySQL数据库管理系统设计,旨在简化数据库的管理和优化。这款工具集包括了多种实用工具,如MySQL Workbench、MySQL Query Browser、MySQL Administrator等,...
#### 一、MySQL优化基础 ##### 1.1 数据库优化的重要性 - **背景介绍**:随着互联网技术的发展,数据量呈指数级增长,对数据库系统的性能要求越来越高。 - **核心价值**:通过有效的优化措施可以提升数据库处理速度...
课程大纲: 第1课 数据库与关系代数 综述数据库、关系代数、查询优化技术 综述数据库调优技术 预计时间1小时 第2课 数据库查询优化技术总揽 ...真正认识、掌握MySQL的查询优化技术,大步流星步入查询优化的高手之列。
MySQL优化是数据库管理中至关重要的一个环节,它旨在提高数据查询效率、降低系统资源消耗,以确保服务的稳定性和响应速度。"MySQL优化大揭秘"这个压缩包中的"SQL.pdf"很可能包含了关于如何优化MySQL数据库的详细教程...
前言 在实际业务中对于分页来说是一个比较常见的业务需求。那么就会使用到limit查询,当我们在使用Limit查询的时候,在数据比较小、或者只查询前面一部分数据的时候...mysql> SELECT * FROM student LIMIT 1000000,1
本文讨论了 MYSQL 优化方案的多个方面,涵盖 BIOS 设置优化、IO 子系统优化、Schema 设计优化、索引设计优化和无法使用索引的场景等方面的知识点,旨在帮助读者更好地了解 MYSQL 优化的方法和策略。
Mysql的分页的两个参数 select * from user limit 1,2 ... 您可能感兴趣的文章:详解MySQL的limit用法和分页查询语句的性能分析MYSQL分页limit速度太慢的优化方法mysql limit分页优化方法分享Mysql limit
### DISTINCT优化之MySQL官方文档翻译解析 #### 一、引言 在数据库查询操作中,经常需要使用`DISTINCT`关键字来去除重复记录,确保结果集中的每一条记录都是唯一的。然而,在某些场景下,使用`DISTINCT`可能会导致...
MySQL作为一款广泛使用的开源关系型数据库管理系统,其性能优化对于确保应用系统的稳定性和高效运行至关重要。通过对MySQL的优化,不仅能提升系统的响应速度,还能有效减少硬件资源的投入成本。本文将详细介绍MySQL...
最基本的优化之一就是使表在磁盘上占据的空间尽可能小。这能带来性能非常大的提升,因为数据小,磁盘读入较快,并且在查询过程中表内容被处理所占用的内存更少。同时,在更小的列上建索引,索引也会占用更少的资源。...
EXPLAIN命令是MySQL优化的重要工具之一。它可以用来查看SQL语句的执行计划,了解SQL语句的执行过程、索引的使用情况、扫描行数等信息。通过EXPLAIN命令,我们可以了解SQL语句的性能瓶颈,进行针对性的优化。 二、...
- **索引类型**:B树是最常见的索引结构之一;Hash索引适用于key-value查询,但不支持范围查询和排序。 ##### 2.2 如何理解数据索引的结构 - **B树索引**:大多数数据库使用B树或其变体作为索引结构。这种结构的...