`
pingfeng
  • 浏览: 59142 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

打包数据库查询,提升性能

阅读更多

以前做过一个打包下发查询(从设备查询)的组件,再在基础上做策略,把应用软件的性能提升了1-2个数量级。

 

现在以数据库为中心的软件设计中,设计中除了要利用nosql数据库中schema-free这种特性外(长项)。应用层,还要承担一些数据库的短项的工作,如关联查询,利用业务场景更智能的查询。从而提升性能。性能的提升主要是从应用场景和架构来提升。比如,不做过度复杂的设计。做一些针对具体业务场景的智能化和优化。

 

下面一个场景就是优化一列。

 

1. 很多任务,不做关联查询。把数据从资源里复制一份。实在找不到资源了,再让到前台去后台查询。这种设计看起来很简单,但数据重复,不能保持致性。另外,增加了前台业务逻辑,这个逻辑的复杂会让系统更加不稳定和不可靠。所以,简单粗暴的设计肯定是不行的,如果这个方法很笨,但肯定还有更好的方法没有被找到。

 

Completed 200 OK in 21ms (Views: 7.7ms)

 

这种方法rails查询完成是21ms。把业务复杂度推给了前台,以数据重复存储,不一致性,降低可靠性为代价。


2. 查询每一个任务都去查一下相关的资源,这样的好处是查询逻辑很简单。但来的问题是,做了大量关联查询。如25个任务,则要做25条关联查询。这样性能就不能达到基线了,光是25个任务就用了106ms.

Completed 200 OK in 106ms (Views: 37.8ms)

 

3. 最后的方案是查询还是做在后台,前台在得到任务的时候得到相关资源。优化的方案就是打包查询,如25个任务合并一起来,做一次数据库查询。再由应用层把查询结果塞到对象里去。

 

Completed 200 OK in 48ms (Views: 30.7ms)


这样,性能达到基线。整体业务逻辑没有变复杂,可靠性没有下降。

分享到:
评论

相关推荐

    数据库实验报告打包下载

    8. **性能优化**:通过查询分析、索引调整、数据库调优工具的使用来提高数据库的查询速度和整体性能。 9. **数据库应用系统**:如果实验包括了开发数据库驱动的应用程序,可能会介绍如何使用编程语言(如Java、...

    dotnet打包自动安装数据库

    4. **更新说明.txt**:这通常会列出软件的最新更新内容,包括新增功能、修复的bug以及可能的性能改进,对于跟踪软件发展和理解打包数据库功能的演变很有帮助。 在.NET开发中,实现自动安装数据库通常涉及以下步骤:...

    H2数据库内容打包,包含最新的官方文档和H2官方包,源码等

    通过阅读源码,开发者可以学习到数据库系统的实现细节,提升自己的技术水平。 5. **效率**:H2数据库因其高效的查询处理和小体积而受到赞誉。它使用了优化的B+树数据结构,支持索引和多种查询优化策略,能在处理...

    将数据库打包到Web安装包(C#)

    8. **ReSharper相关文件**:`_ReSharper.Fely.WebDRPSetup`文件是ReSharper的项目缓存,用于提升IDE的性能和代码分析。 综上所述,这个项目涉及了数据库打包技术,包括数据库还原、SQL脚本执行、`web.config`的动态...

    SQL数据库安装部署与.net打包

    同时,可以配置索引、统计信息和查询优化器,提升数据库性能。 接下来,我们将探讨.NET打包: 1. **理解.NET Framework**:.NET Framework是Microsoft开发的一个运行环境,提供了丰富的类库和组件,用于构建跨平台...

    Oracle_Spatial空间数据库设计打包资料

    1. 空间索引:如R-Tree,提高空间查询性能。 2. 空间操作:包括距离计算、缓冲区分析、几何对象的相交、覆盖等。 3. 地图服务:支持WMS(Web Map Service)和WFS(Web Feature Service)标准,可以发布地图和地理...

    计算机全国等级考试三级数据库技术上机试题100题打包下载

    8. 数据库性能优化:索引的创建与管理,查询优化,存储过程的编写和调优,都是提高数据库性能的关键。 9. 数据库管理系统的选择与比较:例如,Oracle、MySQL、SQL Server、Access等主流DBMS的特点和适用场景。 10....

    软考数据库系统工程师真题

    下午试题则更注重实践应用,可能涉及数据库的安装配置、性能调优、故障排查、存储结构分析、索引设计、查询优化、数据库架构设计等方面。考生需要熟悉常见的数据库管理系统(如Oracle、MySQL、SQL Server等),理解...

    mysql数据库使用教程打包

    10. **性能优化**:通过分析查询性能、使用EXPLAIN命令、调整查询语句、优化索引和配置参数来提升数据库性能。 11. **安全与权限**:设置用户账户、权限控制,理解GRANT和REVOKE语句,以及如何保护数据库免受恶意...

    2012年数据库技术大会演讲PPT打包

    在2012年的数据库技术大会上,...通过学习这些内容,不仅可以深入了解数据库理论,还能掌握实际操作技巧,对于提升数据库管理和应用能力大有裨益。对于热衷于学习数据库技术的朋友们来说,这是一份不可多得的学习资料。

    自考试题及答案数据库及其应用打包

    考生需要学习如何通过调整SQL语句、创建和使用索引来提升查询速度,以及如何合理配置数据库参数以提高整体性能。 通过学习这个压缩包中的历年试题和答案,考生可以熟悉考试题型,掌握重点知识,提高解题能力。同时...

    Oracle数据库各种资料(PPT教义文档,PDF,经典书籍)打包奉送

    此外,它可能还会讨论Oracle数据库的性能优化技巧,如SQL查询优化、数据库架构设计以及内存管理等。 其次,“oracle书籍”可能包含多本关于Oracle的电子书,这些书籍可能深入剖析Oracle数据库的各个层面,比如...

    达梦数据库JAR包

    DM7是达梦数据库的一个重要版本,它带来了许多增强和改进,包括更高的并发处理能力、更优化的查询性能以及更好的安全性。使用这个JAR包,开发者能够编写Java代码来连接到达梦V7数据库,执行CRUD(创建、读取、更新、...

    系统学习数据库PPT打包下载

    索引、查询优化、存储过程、分区等技术都可以提升数据库性能。此外,了解如何进行数据库备份和恢复策略,确保数据的安全性,也是不可或缺的知识。 最后,随着大数据时代的到来,分布式数据库和云计算环境下的数据库...

    计算机三级数据库真题打包

    从标签“数据库”我们可以推断,这些真题主要涉及数据库理论、数据库设计、SQL语言、数据库管理系统(如MySQL、SQL Server、Oracle等)、数据库安全、事务处理、备份恢复、性能优化等相关知识。考生需要对这些内容有...

    超完美经典详细数据库教程pdf教程

    4. **数据库设计**:理解数据库设计原则,如范式理论(第一范式、第二范式、第三范式等),以及如何通过索引优化查询性能。 5. **数据库操作**:学习如何创建、修改和删除数据库对象,如视图、存储过程、触发器和...

    H2数据库,最小的数据库

    同时,H2具备内存管理机制,可以根据内存大小动态调整缓存策略,进一步提升性能。 五、可移植性 H2数据库是开源软件,发布在Apache 2.0许可下,可在多种操作系统和Java平台上运行。其轻量级特性使得它很容易被集成...

    常用数据库JDBC驱动程序打包下载

    总之,"常用数据库JDBC驱动程序打包下载"提供了一站式的解决方案,使得Java开发者可以快速集成对Oracle、MySQL和MSSQL数据库的支持,简化了开发环境的搭建过程,提升了开发效率。在使用这些驱动时,了解其特性和用法...

    精选_基于Python的数据库实现_源码打包

    在IT领域,数据库管理系统是至关重要的工具,它们用于存储、管理、检索和更新数据。而Python作为一种强大且易学...通过深入研究这些源代码,你可以提升自己在Python数据库开发方面的技能,更好地理解和应用数据库技术。

    数据库资料打包【精品】

    本压缩包集合了关于MySQL数据库的精品资源,对于学习和提升MySQL技能极具价值。MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),因其高效、稳定和易用的特点,被众多企业和个人开发者所青睐。 首先,我们...

Global site tag (gtag.js) - Google Analytics