此优化的前提可以称之为最近流行的头条人物“许三多”,总数据多,查询条件多,返回列多
优化前分页查询内部select列为需要的全部列,优化后内部select只返回ID主键,外部查询关联原数据表,然后查出所需要的列
例子1
优化前:
select t.* from (
select r.* ,row_number() over(order by r.id desc) row from tab(nolock) r
where 1=1 and r.IsDelete=0 and r.Status>0 and r.PlatformID=1 and r.CreateUser=100000
) as t where row between 1 and 10
优化后:
select r.* from (
select r.ID ,row_number() over(order by r.id desc) row from tab(nolock) r
where 1=1 and r.IsDelete=0 and r.Status>0 and r.PlatformID=1 and r.CreateUser=100000
) as t join tab r on r.id=t.id where row between 1 and 10
最近又有一个例子
例子2
优化前:tablA数据量1千多万,tablB数据量几百万,查询速度11秒多
select * from (
select d.LessonPlanID,d.ResUrl,p.createID,p.CreateTime,row_number() over(order by d.id desc) row
from tablA(nolock) d
join tablB(nolock) p on p.id=d.lessonplanid
where p.createID in(109486,103295,103298,109347,130346,181382,330312)
) t where t.row between 1 and 20
优化后:查询速度14毫秒
select d.LessonPlanID,d.ResUrl,p.createID,p.CreateTime from (
select d.id,row_number() over(order by d.id desc) row
from tablA(nolock) d
join tablB(nolock) p on p.id=d.lessonplanid
where p.createID in(109486,103295,103298,109347,130346,181382,330312)
) t join tablA(nolock) d on d.id=t.id join tablB(nolock) p on p.id=d.lessonplanid
where t.row between 1 and 20
分享到:
相关推荐
总结,使用SQL查询大数据时,我们需要关注查询优化、索引设计、并行计算、JOIN优化等方面。同时,理解并利用好如SSH这样的工具,以及使用自由查询系统可以提升工作效率。在实际操作中,结合具体的数据库系统(如...
"尚硅谷大数据技术之企业SQL面试题"可能涵盖了这些方面的问题,包括基础语法、性能优化、窗口函数、子查询、连接操作、数据类型、索引以及SQL在特定大数据平台的应用等。学习者可以通过这份文档来检验自己的SQL水平...
Oracle 多表查询优化 Oracle 多表查询优化是指在 Oracle 数据库管理系统中,为了提高多表查询的效率和性能采取的一些优化策略和技术。在 Oracle 中,多表查询是指从多个表中检索数据的操作。这种操作可能会占用大量...
- **创建合适的索引**:根据查询模式创建单列或多列索引,复合索引能提高多条件查询效率。 - **维护索引**:定期重建或分析索引,确保其有效性和适用性。 - **避免索引失效**:避免在索引列上使用函数,因为这...
本文将详细介绍如何在拥有大量数据的 MS SQL Server 数据库中进行查询优化,并探讨高效的大数据分页策略。 #### 二、建立适当的索引 建立“适当”的索引是实现查询优化的关键步骤之一。索引是一种数据结构,它能够...
此外,了解并运用Oracle的索引优化特性也很重要,如索引组织表(Index-Organized Table, IOT)、覆盖索引(Covering Index)以及物化视图(Materialized View)等。 总的来说,Oracle索引详解及SQL优化是一个深度...
在数据库管理中,SQL语法优化和索引优化是提升数据库性能的关键技术。SQL优化主要关注如何编写更高效、更简洁的SQL语句,减少数据库处理数据的时间,而索引优化则是通过创建、调整和管理索引来加快数据检索速度。...
MySQL千万级大数据SQL查询优化是数据库管理中的关键环节,尤其对于处理海量数据的应用来说,高效的查询性能至关重要。以下是一些核心的优化知识点: 1. **建立索引**:索引可以显著提高查询速度,特别是在`WHERE`和...
在大数据环境中,Oracle数据库的优化包括索引策略、查询优化、存储优化和并发控制。合理的索引可以加速查询,智能查询优化器能自动选择最佳执行计划,而分区技术和压缩技术可以减少存储需求。此外,适当的并发控制...
总之,处理SQL Server中的海量数据查询、分页和排序,需要综合运用各种技术和策略,包括但不限于索引优化、分区、数据压缩、查询重构以及执行计划监控。理解这些概念并灵活应用,将有助于提升系统性能,满足大数据...
- **索引优化**:创建合适的索引,尤其是分区索引,可以帮助快速定位数据,提高查询效率。 - **资源分配**:根据业务负载动态调整资源分配,比如将文件组分配到不同磁盘,减少单个磁盘的IO负担。 3. **监控与调优...
Oracle 多表查询优化需要考虑多个方面,包括选择合适的表名顺序、使用 Cache Buffer、语句共享、优化查询路径、避免多表连接查询、优化数据统计、选择合适的索引、优化数据库结构、使用 Materialized View、优化...
MySQL千万级大数据SQL查询优化技巧详解 在处理大数据量的MySQL数据库时,高效的SQL查询显得尤为重要。以下是一些关键的优化技巧,可以帮助你提升查询性能,避免全表扫描,充分利用索引,以及优化查询逻辑: 1. **...
- **索引优化**:正确创建和使用索引可以显著提高查询速度。包括主键索引、唯一索引、非聚集索引、覆盖索引等。 - **查询重构**:简化查询结构,避免复杂子查询,减少不必要的连接操作。 - **使用EXPLAIN或SET ...
- 避免过度索引,仅对经常用于查询条件的列创建索引。 - 定期使用`DBCC INDEXDEFRAG`等命令对索引进行重组和优化。 #### 4. 合理配置内存 - **概述**:内存是影响SQL Server性能的关键因素之一,正确设置内存...
1.2.1.2 数据库优化:针对SQL查询性能、索引结构、数据分区等进行调整,以提高查询效率和响应速度,同时考虑数据库的扩展性和高可用性。 2. 其他功能描述 2.1 其他优化需求 除了平台层面的优化,还需要关注其他...
综上所述,通过使用批量处理技术、引用游标以及SQL性能优化技巧等方法,可以有效地提高Oracle数据库在处理大数据时的查询和更新性能。这些技术的应用不仅能够提高系统的响应速度,还能增强其稳定性和可靠性。
在IT领域,尤其是在...综上所述,优化海量数据的SQL查询涉及多个层面,包括索引管理、查询设计、数据库设计、存储结构等。理解并熟练应用这些策略,可以显著提升处理大数据的性能,保证系统的稳定运行和高效响应。
此外,还可以考虑使用位图索引(bitmap index)处理多个条件的组合查询,尤其是当查询涉及多个字段时。 4. **缓存和预热**: 对于频繁访问的查询,可以考虑使用缓存技术,如Redis或Memcached,预先计算并存储部分...