`

大数据量查询的优化(转载)

阅读更多

http://visualcatsharp.iteye.com/blog/283705

感谢visualcatsharp,学习中

某个库中有一个论坛主帖表,每天增加数千的数据,现在整个表的数据量已经是百万级。由于论坛不断升级,增加了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监测。优化后,就算执行千万级的查询,查询也不会太费劲。

分享到:
评论

相关推荐

    ACCESS数据库大数据量分页的几种方法比较及测试结果分析

    下面我们来讨论一下 ACCESS 大数据量优化分页方法,以及 ACCESS 到底能承受多少数据量。 方案一:利用 ado 本身的结果集的 pagesize,AbsolutePage 的属性来进行分页 这个方法是最为常用的 ACCESS 分页方法。缺点...

    秒杀应用的MySQL数据库优化 (转载)

    在数据库设计上,**分表分库**是解决大数据量问题的有效手段。通过对数据进行水平或垂直切分,可以分散负载,提升处理能力。例如,可以按商品ID的哈希值进行分区,使得每个分区的压力相对均衡。 还要关注的是**事务...

    【转载】浅谈基于索引的SQL语句优化方法

    本文主要探讨的是基于索引的SQL语句优化方法,旨在帮助读者深入理解如何利用索引来提高查询效率。索引是数据库管理系统中的一个重要概念,它能显著加速数据检索过程,尤其是在处理大量数据时。 一、索引的基本原理 ...

    大型网站的优化结构.docx

    - **收录量**:通过搜索引擎工具查询竞争对手的收录情况。 - **外链质量**:分析竞争对手的外部链接,评估其质量和来源。 - **SEO水平**:综合比较自己与竞争对手在SEO方面的差距,包括关键词密度、内容更新机制等...

    北京交通大学-数据结构925-13年-18年考研真题(转载).rar

    这份"北京交通大学-数据结构925-13年-18年考研真题(转载)"包含了2013年至2018年间的全部试题,并且附带了答案,对备考者来说是一份宝贵的参考资料。 数据结构的学习涵盖了数组、链表、栈、队列、树、图等多种抽象...

    【RPA之家转载视频教程7】在UiPath中排序数据表-如何在UiPath中对数据表进行排序-RPA技术中心.rar

    本视频教程【RPA之家转载视频教程7】深入讲解了如何在UiPath中对数据表进行排序,旨在帮助学习者掌握这一核心技能。 首先,理解数据表排序的基本概念至关重要。在UiPath中,数据表通常以DataTable的形式存在,它是...

    SEO网站优化方案(模板).docx

    - **转载复制:** 避免大量转载或复制内容。 **13. 主要SEO工具推荐:** - **关键词排名查询:** SEMrush、Ahrefs等。 - **GOOGLE网站管理员工具:** 提供网站性能数据和故障排查功能。 - **FireFox SeoQuake插件:...

    亿级数据的高并发通用搜索引擎架构设计[转载]

    它们能有效处理大规模数据,并支持水平扩展,满足不断增长的数据量需求。 此外,搜索引擎还需要支持实时索引和搜索,这通常涉及到流式计算框架,如Apache Storm或Spark Streaming。这些工具能够实时处理数据流,...

    数据模型设计心得(转载)

    6. **数据分析**:对收集到的数据进行分析,优化广告投放,可能涉及到用户画像、A/B测试等相关模型。 7. **报表和可视化**:为了便于理解和决策,模型应支持生成各种报表和图表,如投放效果报告、ROI(投资回报率)...

    atmega128采集数据fft计算(转载)

    ATMEGA128是一款由Atmel公司生产的高性能8位AVR微控制器,它具有丰富的片上资源,包括大量的程序存储器、数据...通过分析源码和学习相关资料,我们可以了解如何在实际应用中集成和优化FFT算法,以实现高效的数据处理。

    本人提供SQL语句大全(转载) 12009年04月28日 星期二 19:35SQL语句大全(转载)

    - **JOIN操作**:先执行连接条件较少或结果集较小的JOIN可以减少后续操作的数据量,从而提高整体性能。 ### 9. SQL语句的编写技巧 - 避免不必要的字符串拼接或类型转换,如直接使用数值比较而非字符串比较。 - 在...

    --JTable的分页显示

    当数据量较大时,一次性加载所有数据不仅效率低下,也可能导致界面响应缓慢。因此,实现`JTable`的分页显示是优化用户体验的重要手段。这篇转载的博客文章探讨了如何在`JTable`中实现分页功能。 首先,理解`JTable`...

    带地下结构的大型转载点建筑结构设计

    转载点作为工业生产中的重要组成部分,常常需要进行大规模的物料转运,比如煤炭运输中的转载点。由于其通常涉及到大量重型设备和频繁的物料流动,这要求转载点具有高度的稳定性和可靠性。对于带有地下结构的大型转载...

    hadoop在支付宝的应用

    2. 海量数据处理:随着数据量的急剧增加,支付宝需要处理的数据量达到数十TB级别。支付宝利用Hadoop的大规模数据处理能力,通过优化算法和系统设计,确保了高并发下的读写请求能在10ms内完成98%以上的比例,满足了...

    有米研究院&猎聘-2020年中国移动广告优化师发展报告-2020.10-53页精品报告2020.pdf

    - 超过半数的优化师表示每天工作量大,难以准时下班,仅有两成的优化师能够保证准时上下班。 - 近八成的优化师希望提升自己的数据分析能力,但大多数优化师在自我提升上花费不超过千元。 - 在职场发展中,仅有三成的...

    SEO搜索引擎优化高级教程

    SEO搜索引擎优化是一项涉及网站技术和内容编排的策略,旨在提高网站在搜索引擎结果页(SERP)中的排名,增加网站的可见性,从而吸引更多的访问者。SEO包含许多不同的实践和技巧,从内容的编写和组织到网站结构的优化...

    birt经验之谈转载

    - 避免在表格上直接定义过滤器,而是使用独立的数据集来处理大数据,利用数据库级别的查询优化。 在实际应用中,当在frameset中运行报表时,可能需要考虑如何在多个框架中同步数据或控制交互。BIRT提供了多种方法...

    SEO搜索引擎优化高级教程.pdf

    ### SEO搜索引擎优化高级教程知识点概览 #### 一、单页面的优化操作 **1.1 重要的网页重命名** - **目的**: 提高搜索引擎识别度,增强用户体验。 - **方法**: 使用包含关键词的文件名。 **1.2 重要的网页标题** ...

Global site tag (gtag.js) - Google Analytics