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语句的前面
分享到:
相关推荐
本书实用性强,帮助读者学习PHP编程语言和MySQL数据库服务器的最佳实践,了解如何结合这些卓越的技术创建数据库驱动的动态Web应用程序。 本书适合于Web开发的新手阅读,也适合作为各层次PHP和MySQL开发人员的参考书...
2017年《MySQL运维内参-MySQL、Galera、Inception核心原理与最佳实践》 2018年《MySQL从入门到项目实践(超值版)》 2018年《MySQL数据库从入门到精通》 2020年《MySQL基础教程》 2020年《MySQL是怎样运行的》
此外,我们还采用了安全性的最佳实践,如输入验证、安全过滤和加密存储等,以保护用户数据的安全性。 我们的项目源码具有良好的可读性和可维护性,采用了面向对象的设计原则和模式。我们使用了MVC(Model-View-...
基于Spring Boot的医药管理系统是一个针对药店或...总之,该医药管理系统通过整合现代Java开发的最佳实践,提供了一个健壮、可扩展且易于维护的解决方案,适用于毕业设计项目,能够展示学生在软件开发方面的综合能力。
此外,我们还采用了安全性的最佳实践,如输入验证、安全过滤和加密存储等,以保护用户数据的安全性。 我们的项目源码具有良好的可读性和可维护性,采用了面向对象的设计原则和模式。我们使用了MVC(Model-View-...
此外,我们还采用了安全性的最佳实践,如输入验证、安全过滤和加密存储等,以保护用户数据的安全性。 我们的项目源码具有良好的可读性和可维护性,采用了面向对象的设计原则和模式。我们使用了MVC(Model-View-...
此外,我们还采用了安全性的最佳实践,如输入验证、安全过滤和加密存储等,以保护用户数据的安全性。 我们的项目源码具有良好的可读性和可维护性,采用了面向对象的设计原则和模式。我们使用了MVC(Model-View-...
总之,综上所述,科研工作量管理系统结合了现代Web开发的最佳实践,采用了高效的Spring Boot框架和可靠的MySQL数据库,实现了一套完整的功能来管理科研工作量。系统的设计注重用户体验,同时保证了数据处理的安全性...
thiwankakasun-REST-API设计用于咖啡店,使用JAVA和带有... 将使用以下技术:•Spring Boot:通过提供默认配置和最佳实践,极大地简化了Java企业应用程序和RESTful API的开发。 Spring Data JPA:通过遵循最佳实践来执
该存储库尝试收集使用Go语言开发应用程序的最佳实践。 除了特定于语言的细节之外,它还实现了各种独立于语言的实践。 现代围棋应用程序涉及的一些领域: 建筑 包装结构 构建应用程序 测试 组态 运行应用程序(例如...
该项目是基于Spring Boot和Cloud的微服务项目的一小部分开发,这些项目实现了云原生的直观,React式编程,事件驱动,微服务设计模式和编码最佳实践。 该项目遵循建议和构建软件即服务应用程序的方法论,以展示应...
该系统的设计与开发融合了现代Web开发的最佳实践,包括使用MVC(模型-视图-控制器)架构模式,以确保代码的模块化和可维护性,并采用MySQL数据库来存储和管理用户数据和考试成绩。考试管理模块允许管理员创建和管理...
1.精通C++编程语言:掌握现代语言特性,遵循最佳实践,并严格遵守《Effective C++》、C++核心指南等既定编码规范。 2.深刻理解数据结构、算法与软件设计模式:能据此编写出优化且易于维护的代码,解决复杂问题并提升...
·学习专业的Python风格、最佳实践和好的编程习惯; ·加强对Python对象、内存模型和Python面向对象特性的深入理解; ·构建更有效的Web、CGI、互联网、网络和其他客户端/服务器架构应用程序及软件; ·学习如何...
此更新的Node.js Web开发第五版重点介绍Node.js 14,Express 4.x和ECMAScript的新功能,为您提供有关使用Node.js的现代概念,技术和最佳实践。 本书涵盖以下激动人心的功能: 安装和使用Node.js 14和Express 4.17...
书店书店是一个示例项目,用于演示使用Themosis框架开发WordPress应用程序或网站的最佳实践。 该项目向开发人员展示了如何使用API,如何配置和开发自定义插件以及如何处理具有自定义主题的前端输出。要求...
代码结构和可读性:项目的代码结构清晰,遵循了Java编码规范和最佳实践。这使得其他开发者能够轻松地阅读和理解代码,便于后续的维护和扩展。单元测试:项目包含了一定的单元测试用例,有助于确保代码的质量和稳定性...
翻译MSDN文章 —— 泛型FAQ:最佳实践 Visual C# 3.0 新特性概览 C# 2.0会给我们带来什么 泛型技巧系列:如何提供类型参数之间的转换 C#2.0 - Object Pool 简单实现 Attributes in C# 手痒痒,也来个c# 2.0 object ...
该项目基于最佳实践和行业标准: HTTP消息接口(PSR-7) HTTP服务器请求处理程序,中间件(PSR-15) HTTP工厂(PSR-17) HTTP路由器和调度程序(Slim) 依赖注入容器(PSR-11) 现代编码风格(PSR-1,PSR-12)...
高级java笔试题 EBook-PDF 我的个人订阅号,会定期分享我的读书笔记, 期待你的关注,我们一起学习交流,共同进步 IT PDF电子书 ...Elasticsearch集成Hadoop最佳实践.pdf Hadoop大数据分析与挖掘实战.pdf