`
visualcatsharp
  • 浏览: 41011 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

大数据量查询的优化

阅读更多
         服务器软/硬件配置如下:
CPU:四路至强 2.0G;
内存:8G;
操作系统:Windows Server 2003 SP2;
数据库:SQL Server 2005 SP2;
    某个库中有一个论坛主帖表,每天增加数千的数据,现在整个表的数据量已经是百万级。由于论坛不断升级,增加了N个字段,为了实现良好的扩展性,将某些字段移到了一个子表中,而子表中的某个字段又是外键关联另一个表。没有添加任何非聚集索引。
    当使用top查询N条数据的时候,就算三个表之间进行关联查询,由于服务器性能出众和SQL Server 2005对大数据量的处理能力的提升,查询时间都能在个位数下;但当需要进行分页查询的时候(使用select …where id not in (selet …) 的方式),竟然数十秒甚至几分钟都完成不了查询。
    分析一下有什么地方可以优化的:
1、 以前是两个表,一个表是百万级数据,另一个表只有几条固定的数据;现在是两个百万级的数据表,再加上一个只有几条固定数据的表,两个百万级别的表进行关联查询,性能肯定有影响。
2、 无论是两个表还是三个表,表与表之间的关联是写在视图里的,是否可以创建索引视图进行优化?
3、 查询的时候大多数会加入两个以上的字段进行条件查询,亦会加入一到两个的字段进行排序,在这些字段上创建单独或复合的非聚集索引应该可以得到较大的性能提升。
4、 查询语句是否导致了全表扫描?
结果:
1、 将作为条件查询的字段放在主表里,子表只放一些基本上不会作为条件查询的字段,从而可以使三个表关联查询的情况只发生于查询单条数据。
2、 这个查询所使用的视图并没有指定查询条件,因此索引视图无用武之地
3、 因为由于需求的原因,经常使用的数据占了表数据量的90%左右,经测试,对这些字段添加非聚集索引对性能提升影响不大;而对两个常用的排序字段(创建时间,最后更新时间)分别添加单独的索引,并对这两个字段添加复合索引,对性能的提高的影响是非常大的。
4、 经过分析,这个查询中不存在全表扫描。
        经过以上优化,直接在数据库执行对论坛帖子查询的存储过程(整个系统对数据库的操作大部分都是使用存储过程),无论是查询top N条数据,还是进行每页50-200条的分页查询,经肉眼观察都在1秒内完成。至于具体详细的查询时间,并没有用SQL Profiler监测。优化后,就算执行千万级的查询,查询也不会太费劲。
       
分享到:
评论

相关推荐

    百万数据级快速查询优化技巧

    标题与描述概述的知识点主要集中在数据库查询优化技巧上,尤其针对拥有百万级别数据量的数据库。以下是对这些知识点的详细解读: ### 数据库快速查询优化技巧 #### 1. 避免全表扫描,优化WHERE子句 - **空值判断**...

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

    在大数据量的翻页查询中,优化查询性能是至关重要的,因为这直接影响到系统的响应速度和用户体验。在本文中,我们将探讨如何针对特定场景优化这种查询。首先,我们需要理解系统的基本设定:每天生成一张包含1000万条...

    Oracle 大数据量操作性能优化

    Oracle 大数据量操作性能优化 Oracle大数据量操作性能优化是指在处理大量数据时,如何提高 Oracle 数据库的性能。...Oracle 大数据量操作性能优化技术可以提高 Oracle 数据库的性能,提高数据处理效率和查询速度。

    大数据量数据存储的优化方案(银行项目)

    因此,如何有效地优化大数据量下的数据存储及查询效率成为了银行信息技术部门面临的关键问题。 #### 二、系统优化现状分析 目前,银行信息系统优化主要集中在以下几个方面: 1. **网络带宽升级**:提高网络传输...

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

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

    Web大数据量页面优化实践

    本文将深入探讨“Web大数据量页面优化实践”,结合提供的标签“源码”和“工具”,我们将从代码优化和利用工具两方面来讨论这个问题。 一、代码优化 1. **懒加载**:对于大数据量的页面,一次性加载所有内容可能...

    如何优化大数据量Sql的几点建议

    【SQL数据优化】是数据库管理中的重要环节,尤其是在处理大数据量时,优化SQL查询能显著提升系统的性能。本文主要从三个方面探讨如何优化SQL:索引设计、连接条件和WHERE子句。 首先,**不合理的索引设计**是导致...

    Oracle大数据量操作优化

    Oracle大数据量操作优化

    MySQL百万级数据量分页查询方法及其优化建议

    在MySQL中,面对百万级数据量的分页查询,如何高效地进行操作并优化查询性能是数据库管理员和开发人员必须关注的问题。以下是一些常用的方法和优化建议: 1. **直接使用LIMIT语句**:这是最基础的分页查询方式,如`...

    处理group by 查询速度太慢的问题 数据量大.doc

    在实际项目中,遇到了表数据量大导致查询速度很慢的问题。通过记录和优化过程,总结出一些有价值的经验,希望能够帮助读者解决类似的问题。 知识点1:Group By 查询的索引设置 在优化 Group By 查询时,仅对 Group...

    面向互联网应用的大规模数据实时查询优化方法研究.pdf

    金融数据集通常具有数据量大、查询频繁的特点,通过在这种大规模数据集上验证该优化方法,证明了其实用性和有效性。 从文献中我们可以得知,优化大数据场景下的实时查询是一个多方面的综合策略,其中数据压缩、数据...

    Oracle查询优化技巧

    Oracle查询的优化技巧,对大数据量查询的时候可以节省不少时间。

    大数据量+高并发的数据库SQL优化

    ### 大数据量+高并发的数据库SQL优化 #### 一、数据库结构设计的重要性 在设计数据库时,合理的数据库模型至关重要。它不仅能够简化客户端和服务器端程序的开发与维护工作,还能显著提升系统的实际运行性能。在...

    MySQL大数据量分页查询方法及其优化

    ### MySQL大数据量分页查询方法及其优化 在处理大规模数据集时,MySQL的分页查询是非常常见的需求之一。为了提高查询效率,减少响应时间和资源消耗,开发者需要掌握多种不同的分页查询方法及其优化技巧。本文将详细...

    java动态大数据量EXCEL下载

    标题“java动态大数据量EXCEL下载”暗示了这个系统能够动态地根据用户的查询条件来生成Excel文件。这通常涉及到以下几个步骤: 1. **用户界面(UI)配置**:用户可以通过前端界面选择要查询的字段,这些字段可能是...

    大量数据库的查询优化及分页算法方案

    例如,在小数据量情况下,使用聚合索引可以提高查询速度。在大数据量情况下,使用非聚集索引可能更适合。同时,也需要注意索引的使用误区,例如,索引的使用需要根据实际情况进行调整,不能简单地使用默认的索引设置...

    plsql大数据量导出工具

    在Oracle数据库环境中,处理大数据量的表数据导出是一项挑战,特别是当数据达到百万或千万级别时。"plsql大数据量导出工具"是专为解决这类问题而设计的工具,它能有效地从Oracle数据库中导出大规模数据,并将其保存...

Global site tag (gtag.js) - Google Analytics