MySQL 存储过程:您应该在高性能 Web 应用程序中使用它们吗?
MySQL 存储过程:使用或不使用
当开始一个新项目时,MySQL 存储过程的使用引发了争论。本文探讨了存储过程与在模型层通过 PHP 执行插入和更新相比的优缺点,并为高性能 Web 应用程序的最佳选择提供了指导。
反对存储过程的争论
根据经验丰富的专业人士的说法,存储过程存在以下几个问题局限性:
- 可移植性低:存储过程是特定于数据库的,使得它们在不同的 DBMS 和版本之间不兼容。
- 可测试性有限: 由于需要真实的数据库,单元测试存储过程具有挑战性
- 维护和可更新性问题:删除和重新创建存储过程对于更新、修改生产数据库是必要的。
- 缺乏库支持: 存储过程提供与外部库的有限集成。
- 原始语言:存储过程中使用的语言通常很初级,限制了代码的优雅和业务逻辑的表达。
- 缺乏调试工具:调试、跟踪和日志记录大多无法用于存储过程。
- 性能注意事项:尽管可以感觉到性能优势,但存储过程会增加数据库容量负载,可能会降低事务吞吐量。
- 有限的常量共享:常量的有效共享需要在过程中进行额外的表查询,这是低效的。
考虑存储过程的原因
在特定场景下,存储过程是可行的选项:
- 特定于数据库的操作:存储过程适用于特定于数据库的操作或维护数据库内的事务完整性。
- 简单原子程序: 保持程序简短和原子化可以减轻一些问题
Web 应用程序的高性能
高性能对于 Web 应用程序至关重要。存储过程经常被吹捧为性能增强器,但这是一个误解。它们通常会增加数据库负载,从而降低性能,尤其是在读取密集型应用程序中。因此,出于性能原因,建议避免使用存储过程。
结论
在 MySQL 中使用存储过程的决定应该谨慎做出。它们有许多缺点,包括缺乏可移植性、有限的测试、维护挑战、原始语言和值得怀疑的性能优势。除非处理特定的数据库相关操作或维护数据库完整性,否则通常建议避免使用存储过程并通过 PHP 在模型层中执行插入和更新,以实现高性能 Web 应用程序。
以上是MySQL 存储过程:您应该在高性能 Web 应用程序中使用它们吗?的详细内容。更多信息请关注PHP中文网其他相关文章!
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前
By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
击败分裂小说需要多长时间?
3 周前
By DDD
R.E.P.O.保存文件位置:在哪里以及如何保护它?
3 周前
By DDD

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

在 Linux 中运行 MySQl(有/没有带有 phpmyadmin 的 podman 容器)

哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什么?
