MySQL 存储过程与复杂查询

2022-08-30 17:36:56

存储过程的性能如何?是否值得使用它们而不是在PHP / MySQL调用中实现复杂的查询?


答案 1

存储过程将为您提供一个小的性能提升,但它们主要用于执行使用简单查询难以或不可能完成的任务。存储过程非常适合简化对许多不同类型的客户端的数据访问。数据库管理员喜欢它们,因为他们控制数据库的使用方式,而不是将这些详细信息留给开发人员。

依靠索引和正确的表设计来获得更好的性能。


答案 2

我讨厌有人阅读这些答案并得到错误的印象。“MySQL”与“SQL Server/Oracle”上的“Stored Whatever”实现之间存在一些非常重要的差异。

请参见:http://www.joinfu.com/2010/05/mysql-stored-procedures-aint-all-that/

每个提出这个问题的人都假设MySQL的存储过程实现;他们错误地认为存储过程被编译并存储在全局存储过程缓存中,类似于Microsoft SQL Server[1]或Oracle[2]中的存储过程缓存。

这是错误的。完全不正确。

事实是:与MySQL服务器的每个连接都维护自己的存储过程缓存。

花一分钟时间阅读文章的其余部分和评论。它很短,您将对问题有更好的理解。


推荐