`

工作日志十四 重构认识之三

 
阅读更多
      SQL的重构,也是开发者经常要做的工作。当我们的SQL变更的时候,SQL会变得越来

越长,查询效率会变得越来越慢,这就是暗示,我的SQL语句可能到了需要重构的时候啦。我

们原来的SQL设计也许已经不能满足现有的需求,那么重新调整我们查询的SQL设计和方案是

非常必要的。

        通常,我们需要对过长的SQL重构。每当我们的开发人员,拿过来一段长长的SQL语

句,就感觉有点打颤,其实,越长的SQL语句并不复杂,体现了一些业务的逻辑在里面,只要

我们明白了其中的含义,也就不难啦。我的主要重构SQL的目的,使我们的SQL更简洁,可读

性更好些,性能得到很好的提升。重构SQL最终目标还是让我们的性能能够满足当前的需求。

如何重构我们的SQL,需要我们根据实际情况来操作,但是还需要一定的经验作指导。

        根据20/80原则,影响我们SQL性能的80,主要集中在设计和开发阶段,所以我们在

设计和编写SQL语句的时候,就该尽量做到性能良好。对于现有的系统,我们要提升我们的

SQL性能,就主要在重构SQL,进行部分的设计和修改,完善,满足用户的需求。一般,我们

重构SQL:

       首先,确定那些SQL语句已经不再起作用,删除多余的SQL语句。

        其次,对于一些业务逻辑性比较强的SQL,我们需要加些适当的注释,便于以后的维

护和理解。

        另外,对于现有的SQL语句已经满足不了需求,需要及时地重新设计和实现。还有就

是一些性能比较慢的SQL语句,需要去进行调优。

       最后,把每个SQL放到恰当的位置存储,组织层次结构清晰,便于其他开发人员查找

和修改。

    SQL的重构,开发人员必须重视起来。我们的SQL代码简洁,清晰,性能优越,是我们开

发人员所追求的目标。
分享到:
评论

相关推荐

    最全面的软件测试面试题

    #### 三十四、集成测试与系统测试的关系 集成测试关注的是模块之间的交互,而系统测试则关注整体系统的功能和性能。 #### 三十五、用户文档的范围 - **用户手册**:提供软件使用的详细指南。 - **快速入门指南**...

    Pro Apache Hadoop, 2nd Edition

    第十四章介绍HBase,这是构建在Hadoop之上的一个NoSQL数据库。它特别适合于需要实时读写访问大量稀疏数据的场景。 **15. 使用Hadoop的数据科学(Data Science with Hadoop)** 第十五章关注Hadoop在数据科学领域的...

    springAOP详解

    - **耦合度高**:业务逻辑和日志记录逻辑紧密耦合,不利于代码的扩展和重构。 **解决方案:** - **引入代理模式**:使用 Java 动态代理技术来创建一个代理对象,该对象能够在调用目标方法前后执行额外的操作(如...

    毕业实习总结-(2500字).doc

    在毕业实习过程中,我深刻体验了信息技术行业的实际操作与理论学习的差异,以下是我对这段实习经历的总结和所学到的知识点。 1. 技术应用与实践:实习期间,我了解到理论知识与实际工作之间的差距。在课堂上,我们...

    全国2013年1月自学考试软件开发工具试题.doc

    在Eclipse插件中,用户可以使用Log4E插件来配置项目日志,这对于跟踪和调试错误非常有帮助。 ### 20. Rational Rose的功能 Rational Rose是一款强大的建模工具,支持UML建模、HTML开发、基于组件的开发以及系统...

    数据结构课程设计报告

    数据结构课程设计报告的核心主题是"链表的维护与文件形式的保存...通过这个课程设计,学生能够深入理解链表操作、文件I/O以及数据结构在实际问题中的应用,同时也对字符串比较、循环控制和文件处理有了更深入的认识。

    代码之美 代码之美 代码之美 代码之美

    【代码之美】这一主题深入探讨了编程中的美学与效率,旨在揭示高质量代码的内在魅力和力量。代码之美并不仅仅体现在...每个程序员都应当追求写出这样的代码,因为这不仅是对自己工作的尊重,也是对团队和用户的负责。

    基于S2SH的电子宠物(不完整)

    【标题】"基于S2SH的电子宠物(不完整)" 涉及的技术栈是Struts2、Spring和Hibernate,这三种技术是Java Web开发中的经典组合,通常被称为S2SH框架。以下是对这些技术及其在项目中的应用进行的详细解释。 1. **...

    DevOps on the Microsoft Stack

    通过上述内容的介绍,我们对“DevOps on the Microsoft Stack”这一主题有了全面而深入的认识。无论是在理论还是实践层面,DevOps都已经成为了软件开发和运维领域不可或缺的一部分,而微软的技术堆栈则为DevOps的...

    基于PHP的仿1号店整站源码 for ECSHOP.zip

    2. **ECSHOP框架**:深入理解ECSHOP的架构和工作原理,包括模板引擎、插件机制、支付接口、物流接口等,有助于快速上手和定制开发。 3. **MySQL数据库**:ECSHOP通常会与MySQL数据库配合,存储商品信息、用户数据、...

    PHP实例开发源码—全新哆咪付在线换钱系统PHP源码.zip

    ...这个压缩包包含了一个全新的哆咪付在线换钱系统的源代码,是学习和研究PHP开发支付系统的一个实际案例。...通过对源码的阅读、调试和重构,开发者可以提升自己的PHP技能,并对金融类Web应用的开发有更全面的认识。

    _ThinkPHP5.0入门实例教程

    ### 第十三章 总结 在总结中,强调了学习ThinkPHP5.0框架的重要性和所学到的知识点。同时也提供了一些建议,鼓励开发者去阅读官方手册,并给出了版权申明。 本教程的内容覆盖了ThinkPHP5.0框架的基础操作到高级应用...

    伟大的悲剧_课件[宣贯].ppt

    他的作品《伟大的悲剧》是基于斯科特遗留的日记、照片和其他记录,通过文学想象力重构了这段历史。课件中列出的一些词汇,如“拽”、“凛冽”、“吞噬”等,可能是在描绘南极严酷环境的场景,而“力竭”、“不乐”、...

    基于SSM使用idea构建的旅游网站---毕业设计.zip

    通过学习和实践这个项目,你可以深入理解SSM框架的使用,提升Java Web开发技能,并对构建大型网站有更直观的认识。同时,对于毕业设计而言,这样的项目既具有实际应用场景,又能够锻炼综合运用所学知识的能力。

    2022年自学考试软件开发工具试题.doc

    选择A(认识与描述客观系统)是这个阶段最希望得到的协助,因为清晰准确的需求定义是软件项目成功的基础。 2. 软件开发工具的种类:包括分析工具、计划工具、设计工具和软件工作环境。选择C(设计工具)作为数量...

    「安全开发」基于压缩感知的单像素成像技术研究进展 - 渗透测试.zip

    7. **安全教育**:这一技术的发展也为网络安全教育提供了新的教学素材,帮助学习者理解不同的安全检测方法,提升对新兴威胁的认识。 8. **日志审计**:虽然单像素成像技术可能不直接应用于日志审计,但其压缩感知...

    Sybase Perfomance and Tuning:Basics

    3. **日志与报告**:利用Sybase提供的日志功能记录系统运行情况,定期生成性能报告,以便于追踪历史数据和趋势变化。 #### 五、性能调优策略 1. **SQL查询优化**: - 使用EXPLAIN命令查看查询执行计划,确保选择...

    北京金山WPS软件工程师面试题及答案

    "北京金山WPS软件工程师面试题及答案"这个标题表明这是一个与面试相关的资料,主要针对的是北京金山公司的WPS软件工程师职位。金山WPS是知名的办公软件套件,包括文字处理、表格制作和演示文稿等功能,其二次开发则...

    aspnetcore.rar

    ASP.NET Core是ASP.NET的下一代版本,它将ASP.NET 4.x和ASP.NET 5进行了彻底重构,旨在提供更轻量级、模块化和高性能的框架。它支持Windows、Linux和macOS等操作系统,并且可以与IIS、Kestrel等多个服务器协同工作...

    基于python的互联网数据爬取与解析的研究与实践.pdf

    本文针对网络数据爬取技术,以Python语言及其第三方库为核心技术进行了深入研究,并展示了利用这些技术实现对网络数据的高效爬取、解析和重构的过程。 首先,本文阐述了Python语言在数据爬取中的优势和应用。Python...

Global site tag (gtag.js) - Google Analytics