原sql:
select * from (
select a.*,rownum rn from
(select * from product a where company_id=? order by status) a
where rownum<=20)
where rn>10;
优化:
优化原理是通过纯索引找出分页记录的ROWID,再通过ROWID回表返回数据,要求内层查询和排序字段全在索引里。
create index myindex on product(company_id,status);
select b.* from (
select * from (
select a.*,rownum rn from
(select rowid rid,status from product a where company_id=? order by status) a
where rownum<=20)
where rn>10) a, product b
where a.rid=b.rowid;
数据访问开销=索引IO+索引分页结果对应的表数据IO
实例:
一个公司产品有1000条记录,要分页取其中20个产品,假设访问公司索引需要50个IO,2条记录需要1个表数据IO。
那么按第一种ROWNUM分页写法,需要550(50+1000/2)个IO,按第二种ROWID分页写法,只需要60个IO(50+20/2);
分享到:
相关推荐
在Mysql的索引优化案例中,我们学习了如何利用索引优化分页查询和关联查询,知道了主键自增和连续的重要性,以及在非主键字段排序时如何通过调整查询策略来提高效率。通过这些案例,我们可以得出一个结论:一个良好...
6. **性能优化**:探讨如何通过索引优化分页查询的性能,以及使用存储过程等高级技术。 7. **最佳实践**:分享在实际开发中实现分页的一些最佳实践,如避免全表扫描,正确处理边界情况等。 通过这个实例,开发者将...
具体来讲,索引扫描分页技术的核心在于,避免对表的全表扫描,而是通过查询索引来快速定位到所需页的数据范围,减少IO操作次数,从而达到优化分页的目的。 在Oracle数据库中,B-Tree索引是一种常用的数据结构,它...
我们可以使用 id 主键索引来优化分页查询。例如: select id from collect order by id limit 90000, 10; 结果非常快,基本上 0.04 秒就 OK。这是因为 MySQL 使用了 id 主键索引来快速定位分页的位置。 解决方案...
### 大数据 SQL 性能优化与分页算法详解 #### 一、引言 在当前信息化社会背景下,数据量的急剧增长使得大数据处理成为一项关键任务。在处理大规模数据集时,SQL 查询的性能优化变得尤为重要。本文将详细介绍如何在...
海量数据库的查询优化及分页算法方案是一个复杂的问题,需要我们从多方面考虑,包括聚集索引的建立、数据库引擎的选择、存储结构的优化、查询语句的优化等。只有通过合理的优化和分页算法,我们才能实现快速地从海量...
本主题聚焦于"经典SQL与优化分页",这涉及到如何有效地从大型数据集中获取特定页面的数据,而不会对数据库性能造成过大的影响。 一、SQL基础 1. SELECT语句:SQL的核心在于SELECT语句,它用于从一个或多个表中检索...
本文将分享一位开发者针对SqlSever2005一千万条以上记录的分页数据库优化经验,包括索引优化和代码优化,帮助读者理解如何应对大规模数据处理中的性能瓶颈。 首先,当数据量达到千万级别时,数据库的性能表现将直接...
本文档针对mysql分页之limit慢的问题,使用联合索引在大数据量的情况下优化limit分页的性能
在SQL优化中,索引、存储过程以及数据分页的存储过程是三个关键点。 首先,让我们深入理解索引。索引可以视为数据库中的特殊目录,帮助快速定位和访问数据。SQL Server提供了两种主要类型的索引:聚集索引...
- **使用LIMIT优化分页查询**:在进行分页查询时,使用`LIMIT`配合`ORDER BY`可以限制返回结果的数量,但应尽量避免在`ORDER BY`后的字段上没有索引,这可能导致全表排序。 - **避免在WHERE子句中使用NOT IN、!=、...
MySQL 海量数据库的查询优化及分页算法方案 在大规模数据库中,查询优化和分页算法是两个非常重要的方面。本文将详细介绍 MySQL 海量数据库的查询优化和分页算法方案。 一、查询优化 查询优化是指通过调整查询...
1. **索引优化**:索引是提升查询速度的关键。非聚簇索引用于快速查找特定值,而聚簇索引决定数据在表中的物理存储顺序。创建合适的索引,尤其是在经常用于WHERE子句的列上,可以显著减少查询时间。 2. **查询语句...
索引优化** - **单列索引:** 在常用的过滤字段上建立索引,例如上述示例中的`vtype`字段。 - **复合索引:** 当查询条件涉及多个字段时,考虑建立包含所有相关字段的复合索引,以提高查询速度。 **3. 分表策略** ...