`
guochunyang2004
  • 浏览: 80252 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

sql大数据多条件查询索引优化

 
阅读更多

此优化的前提可以称之为最近流行的头条人物“许三多”,总数据多,查询条件多,返回列多

优化前分页查询内部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语言查询大数据

    总结,使用SQL查询大数据时,我们需要关注查询优化、索引设计、并行计算、JOIN优化等方面。同时,理解并利用好如SSH这样的工具,以及使用自由查询系统可以提升工作效率。在实际操作中,结合具体的数据库系统(如...

    尚硅谷大数据技术之企业SQL面试题_大数据_sql_尚硅谷sql_doc_

    "尚硅谷大数据技术之企业SQL面试题"可能涵盖了这些方面的问题,包括基础语法、性能优化、窗口函数、子查询、连接操作、数据类型、索引以及SQL在特定大数据平台的应用等。学习者可以通过这份文档来检验自己的SQL水平...

    Oracle 多表查询优化

    Oracle 多表查询优化 Oracle 多表查询优化是指在 Oracle 数据库管理系统中,为了提高多表查询的效率和性能采取的一些优化策略和技术。在 Oracle 中,多表查询是指从多个表中检索数据的操作。这种操作可能会占用大量...

    Sql优化大数据访问量

    - **创建合适的索引**:根据查询模式创建单列或多列索引,复合索引能提高多条件查询效率。 - **维护索引**:定期重建或分析索引,确保其有效性和适用性。 - **避免索引失效**:避免在索引列上使用函数,因为这...

    大数据 sql 性能 优化 分页算法

    本文将详细介绍如何在拥有大量数据的 MS SQL Server 数据库中进行查询优化,并探讨高效的大数据分页策略。 #### 二、建立适当的索引 建立“适当”的索引是实现查询优化的关键步骤之一。索引是一种数据结构,它能够...

    ORACLE索引详解及SQL优化

    此外,了解并运用Oracle的索引优化特性也很重要,如索引组织表(Index-Organized Table, IOT)、覆盖索引(Covering Index)以及物化视图(Materialized View)等。 总的来说,Oracle索引详解及SQL优化是一个深度...

    SQL语法、索引优化

    在数据库管理中,SQL语法优化和索引优化是提升数据库性能的关键技术。SQL优化主要关注如何编写更高效、更简洁的SQL语句,减少数据库处理数据的时间,而索引优化则是通过创建、调整和管理索引来加快数据检索速度。...

    MySQL千万级大数据SQL查询优化知识点总结

    MySQL千万级大数据SQL查询优化是数据库管理中的关键环节,尤其对于处理海量数据的应用来说,高效的查询性能至关重要。以下是一些核心的优化知识点: 1. **建立索引**:索引可以显著提高查询速度,特别是在`WHERE`和...

    大数据优化

    在大数据环境中,Oracle数据库的优化包括索引策略、查询优化、存储优化和并发控制。合理的索引可以加速查询,智能查询优化器能自动选择最佳执行计划,而分区技术和压缩技术可以减少存储需求。此外,适当的并发控制...

    海量数据查询sqlserver

    总之,处理SQL Server中的海量数据查询、分页和排序,需要综合运用各种技术和策略,包括但不限于索引优化、分区、数据压缩、查询重构以及执行计划监控。理解这些概念并灵活应用,将有助于提升系统性能,满足大数据...

    Sqlserver 高并发和大数据存储方案

    - **索引优化**:创建合适的索引,尤其是分区索引,可以帮助快速定位数据,提高查询效率。 - **资源分配**:根据业务负载动态调整资源分配,比如将文件组分配到不同磁盘,减少单个磁盘的IO负担。 3. **监控与调优...

    ORACLE多表查询优化

    Oracle 多表查询优化需要考虑多个方面,包括选择合适的表名顺序、使用 Cache Buffer、语句共享、优化查询路径、避免多表连接查询、优化数据统计、选择合适的索引、优化数据库结构、使用 Materialized View、优化...

    30个mysql千万级大数据SQL查询优化技巧详解

    MySQL千万级大数据SQL查询优化技巧详解 在处理大数据量的MySQL数据库时,高效的SQL查询显得尤为重要。以下是一些关键的优化技巧,可以帮助你提升查询性能,避免全表扫描,充分利用索引,以及优化查询逻辑: 1. **...

    SQL Server数据库查询优化相关论文及资料

    - **索引优化**:正确创建和使用索引可以显著提高查询速度。包括主键索引、唯一索引、非聚集索引、覆盖索引等。 - **查询重构**:简化查询结构,避免复杂子查询,减少不必要的连接操作。 - **使用EXPLAIN或SET ...

    SQLServer数据库优化之50种方法

    - 避免过度索引,仅对经常用于查询条件的列创建索引。 - 定期使用`DBCC INDEXDEFRAG`等命令对索引进行重组和优化。 #### 4. 合理配置内存 - **概述**:内存是影响SQL Server性能的关键因素之一,正确设置内存...

    企业大数据云平台功能优化方案.pdf

    1.2.1.2 数据库优化:针对SQL查询性能、索引结构、数据分区等进行调整,以提高查询效率和响应速度,同时考虑数据库的扩展性和高可用性。 2. 其他功能描述 2.1 其他优化需求 除了平台层面的优化,还需要关注其他...

    oracle 迅速查询和更新大数据

    综上所述,通过使用批量处理技术、引用游标以及SQL性能优化技巧等方法,可以有效地提高Oracle数据库在处理大数据时的查询和更新性能。这些技术的应用不仅能够提高系统的响应速度,还能增强其稳定性和可靠性。

    海量数据优化查询SQL

    在IT领域,尤其是在...综上所述,优化海量数据的SQL查询涉及多个层面,包括索引管理、查询设计、数据库设计、存储结构等。理解并熟练应用这些策略,可以显著提升处理大数据的性能,保证系统的稳定运行和高效响应。

    大数据量翻页查询的一点经验

    此外,还可以考虑使用位图索引(bitmap index)处理多个条件的组合查询,尤其是当查询涉及多个字段时。 4. **缓存和预热**: 对于频繁访问的查询,可以考虑使用缓存技术,如Redis或Memcached,预先计算并存储部分...

Global site tag (gtag.js) - Google Analytics