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

MySQL存储程序开发最佳实践

阅读更多
MySQL存储程序开发最佳实践

1,开发流程
1,写代码之前设立标准和指南
2,遇到一个问题30分钟不能解决之后寻求帮助
3,相互review代码
4,利用独立的测试人员进行测试
5,使用代码版本控制


2,编码风格和惯例
1,使用一致的、可读性强的代码风格
2,使用有逻辑意义的、一致的命名规范
3,使用block和loop labels作为自我诠释文档
4,复杂的表达式使用括号
5,使用纵向的代码排列来强调纵向关系
6,注释代码简明扼要并且只写“增值”信息


3,变量
1,使用一致的而且有意义的变量命名风格
2,避免在内部block里覆盖变量声明
3,使用function来替代复杂的表达式
4,移除不用的变量和代码
5,不要假设表达式的结果为TRUE或FALSE,它可能为NULL
6,尽量少使用用户变量作为全局数据
7,在strict mode下创建存储程序来避免非法的数据赋值


4,条件逻辑
1,对互斥的条件语句使用ELSEIF
2,只使用IF...ELSEIF来测试单独的、简单的条件
3,确保CASE语句能够包含所有的情况,或者构建一个Handler来捕获没有匹配的情况
4,不要混合使用CASE和IF


5,循环处理
1,确保循环会终结
2,在循环的终结条件里显式的声明所有条件,不要在内部使用LEAVE或RETURN
3,在简单的循环里使用一个单独的LEAVE
4,使用一个简单的循环来避免循环必需的冗余代码


6,异常处理
1,处理不可避免但又能够预期的异常
2,使用named condition来提高代码可读性
3,在异常处理时使用一致的SQLSTATE或MySQL error code,不要混合使用
4,避免使用全局的SQLEXCEPTION Handler,除非MySQL实现了SIGNAL和SQLCODE特性


7,存储程序里的SQL
1,显式使用START TRANSACTION语句来打开事务
2,不要让事务“悬空”,要负责结束事务
3,避免使用savepoint,它们让程序逻辑变模糊,并降低程序效率
4,使用合适的锁策略
5,保持事务简短
6,在完成cursor循环之后一定要设置NOT FOUND变量
7,当需要更新记录时使用SELECT FOR UPDATE
8,避免在可能用在SQL里的function里引入SQL语句,嵌套查询会严重消耗性能


8,动态SQL
1,在动态SQL字符串里使用绑定而不是连接变量值,这样可以避免SQL注入
2,小心检查任何可能用于构建动态SQL的参数值
3,考虑为执行动态SQL的存储过程添加INVOKER权限


9,程序构建
1,封装业务逻辑和方程到准确命名的function里
2,使用function和procedure模板来标准化模块
3,使用模块化来限制程序代码50-60行
4,避免程序的副作用
5,避免条件和循环的深层嵌套
6,限制执行部分只有一个单独的RETURN语句
7,使用存储程序来实现对多个trigger公用的代码


10,性能
1,专注于SQL调优来提高存储程序性能
2,为你的程序小心创建最好的索引集
3,避免意外的全表扫描
4,优化必要的全表扫描
5,避免将计算消耗过大的逻辑放在存储程序里
6,将循环中不变的表达式移出循环
7,优化条件结构
8,将匹配率较大的条件放在IF和CASE语句的前面
分享到:
评论

相关推荐

    MySQL SQL高效开发最佳实践

    ### MySQL SQL高效开发最佳实践 在当今数据驱动的时代背景下,SQL作为访问和处理数据库的标准语言,在数据管理和应用开发中扮演着至关重要的角色。对于开发者而言,掌握MySQL SQL的高效开发技巧不仅能提高工作效率...

    Mysql最佳实践32条

    本文将围绕知数堂吴炳锡所提出的MySQL最佳实践32条,针对硬件、MySQL版本、开发、安全、操作系统、MySQL配置和运维事项等几个方面,进行详细的知识点梳理。 首先,从硬件层面来看,BIOS的配置优化是非常重要的一个...

    PHP5+MYSQL网页系统开发设计

    本书可能包含的实例和项目,可能涵盖从基础的数据库连接到复杂的网页应用程序开发。通过这些实例,读者可以逐步学习到如何设计数据库模型,编写PHP脚本来处理数据,以及如何将两者有效地结合起来,实现用户交互和...

    PHP+MySQL开发Web程序教程下载

    9. **最佳实践**:编写可维护和可扩展的代码,以及性能优化技巧。 通过这个教程,你将能够掌握PHP和MySQL的基本概念和实践技能,从而能够创建功能丰富的Web应用程序。记得在学习过程中不断实践,理论结合实际,以...

    携程MySQL迁移OceanBase最佳实践.pdf

    携程MySQL迁移到OceanBase最佳实践 本文档主要介绍携程MySQL迁移到OceanBase的最佳实践,涵盖了业务场景、OceanBase的优势和劣势、迁移方案评估流程、迁移方案迁移流程、迁移遇到的问题和解决方案、迁移现状和收益...

    基于MySQL的应用程序开发.pdf

    开发者在进行MySQL应用程序开发时,可以参考专业文献,获取最佳实践和解决方案,提高开发质量和效率。这可能包括官方文档、社区论坛、技术博客和专业书籍。 5. **性能调优**: 除了上述设计和优化技巧,还需要...

    《PHP和MySQL Web开发》(原书第4版)—源代码

    通过分析和实践这些源代码,读者不仅可以深入理解PHP和MySQL的交互,还能学习到良好的编程习惯、项目组织结构和Web开发的最佳实践。这些经验对于任何想要在Web开发领域取得进步的人来说都是宝贵的财富。

    MySQL存储过程编程.pdf

    MySQL 存储过程编程的最佳实践: * 使用参数IsValid来确保参数的正确性。 * 使用TRY-CATCH语句来处理异常。 * 使用 transactions 来确保数据的一致性。 * 使用索引来提高查询效率。 MySQL 存储过程编程的挑战: ...

    mysql存储过程教程

    总结,MySQL的存储过程是提升数据库管理效率的重要工具,掌握其使用方法和最佳实践对于数据库设计和开发人员至关重要。通过学习和实践,你可以更好地利用存储过程来优化数据处理流程,提高系统性能。

    PHP和MySQL+Web开发(原书第4版)—完整源代码

    《PHP和MySQL+Web开发(原书...通过学习,读者不仅可以掌握PHP和MySQL的基础知识,还能了解到实际开发中的最佳实践,为构建高效、安全的Web应用程序打下坚实的基础。配合提供的完整源代码,学习过程将更加直观和高效。

    《PHP与MySQL 5程序设计(第二版)》示例代码

    本书实用性强,帮助读者学习PHP编程语言和MySQL数据库服务器的最佳实践,了解如何结合这些卓越的技术创建数据库驱动的动态Web应用程序。 本书适合于Web开发的新手阅读,也适合作为各层次PHP和MySQL开发人员的参考书...

    android-php开发最佳实践源码

    本资源“android-php开发最佳实践源码”提供了一个实际的案例——微博项目,涵盖了服务端和客户端的完整代码,帮助开发者深入理解这两种技术的结合。 1. **Android部分**: - **Android SDK**:作为Android应用的...

    PHP和MySQL Web开发 第四版 英文版

    通过阅读《PHP和MySQL Web开发 第四版》,读者不仅可以掌握这两种技术的基本使用,还能了解到Web开发的最佳实践和最新趋势,从而提升自己的Web开发技能。无论你是初入行业的新人,还是希望深化理解的开发者,这本书...

    PHP5+mysql经典实例程序

    《PHP5+MySQL经典实例程序解析》 在Web开发领域,PHP5与MySQL的结合是极为常见且强大的组合...通过对这些实例的深度分析,开发者不仅能提升编程技能,还能了解实际项目中的最佳实践,为今后的Web开发打下坚实的基础。

    PHP与MySQL程序设计 第四版.pdf

    在Web开发中,良好的设计模式和最佳实践至关重要。《PHP与MySQL程序设计 第四版》将引导读者了解面向对象编程(OOP)在PHP中的应用,以及如何设计健壮的数据库架构。书中还可能包含有关MVC(Model-View-Controller)...

    PHP和MySQL Web开发

    除了基础内容,第四版还可能涵盖了PHP的最新特性,如面向对象编程、错误处理、命名空间、Composer依赖管理,以及MySQL的新特性和最佳实践,如InnoDB存储引擎、分区、视图、触发器等。书中可能通过实例项目来展示如何...

Global site tag (gtag.js) - Google Analytics