Php 存储过程和mysql

Php 存储过程和mysql,php,mysql,database,stored-procedures,Php,Mysql,Database,Stored Procedures,是否值得在存储过程或代码(或单独的类)中进行编码 我在某个地方读到,存储过程的执行速度更快,因为它们位于数据库上,在读取php代码时不需要进行解释 我喜欢在一个单独的文件中编码我需要的mysql代码,并从那里引用它。如果使用存储过程会有什么不同吗?如果使用存储过程,生成它们的代码将与存储CREATE TABLE语句的方式类似。它可能与PHP代码没有交互。存储过程以与表和视图相同的方式存储在MySQL中——您很少在运行时使用代码创建它们 因此,只需创建一个名为procedures.sql的文件,对

是否值得在存储过程或代码(或单独的类)中进行编码

我在某个地方读到,存储过程的执行速度更快,因为它们位于数据库上,在读取php代码时不需要进行解释


我喜欢在一个单独的文件中编码我需要的mysql代码,并从那里引用它。如果使用存储过程会有什么不同吗?

如果使用存储过程,生成它们的代码将与存储
CREATE TABLE
语句的方式类似。它可能与PHP代码没有交互。存储过程以与表和视图相同的方式存储在MySQL中——您很少在运行时使用代码创建它们

因此,只需创建一个名为
procedures.sql
的文件,对存储过程进行编码并将其加载到数据库中,就像使用
create TABLE
语句一样。从SQL文件执行
CREATE PROCEDURE
语句后,可以将其从web服务器中删除。它不应该位于web可访问空间中的任何位置


存储过程和准备好的语句都可以提高性能和安全性。与预处理语句相比,存储过程的好处在于,数据库逻辑可以与应用程序代码解耦。这允许您从不同的应用程序接口执行相同的数据库操作(如果有必要这样做)。

如果使用存储过程,生成它们的代码将与存储
CREATE TABLE
语句的方式类似。它可能与PHP代码没有交互。存储过程以与表和视图相同的方式存储在MySQL中——您很少在运行时使用代码创建它们

因此,只需创建一个名为
procedures.sql
的文件,对存储过程进行编码并将其加载到数据库中,就像使用
create TABLE
语句一样。从SQL文件执行
CREATE PROCEDURE
语句后,可以将其从web服务器中删除。它不应该位于web可访问空间中的任何位置

存储过程和准备好的语句都可以提高性能和安全性。与预处理语句相比,存储过程的好处在于,数据库逻辑可以与应用程序代码解耦。这允许您从不同的应用程序界面执行相同的数据库操作(如果有必要)。

请参阅:

基本上,如果您将数据库逻辑保留在数据库中,并且不使用sql混淆php代码,这会更好,因为sql很难维护。此外,由于存储过程是编译的,因此它们的性能更好。

请参阅:


基本上,如果您将数据库逻辑保留在数据库中,并且不使用sql混淆php代码,这会更好,因为sql很难维护。另外,由于存储过程是编译的,所以它们的性能更好。

我最近遇到了这个问题

在DB上使用存储过程要快得多,当您创建SP时,它会将其编译成一个中间代码,运行速度比在运行时解析标准SQL语句快得多。SP的另一个最大优点是,您可以传入一些参数,并且可以让SP在DB上完成全部工作,这可以使用IF-ELSE语句和案例进行控制,这也可以将应用程序和DB之间的通信量保持在最低限度

SP的最后一个优势是,您可以将DB实现与应用程序实现分开,这意味着如果您在应用程序中的10个不同位置执行插入,那么您需要更改插入的方式,您需要返回并在这10个不同位置更改插入,但是,如果使用SP包装插入,则只需动态更改该SP,应用程序无需知道;)

如果您已经编写了SQL代码,那么您几乎75%的时间都在编写SP


编辑:如果您使用PHP MySQLi,您可能知道也可能不知道调用存储过程会返回2行集,而标准查询只返回1行集,但这并不是一个太大的问题,只要您知道它的到来:-)

我最近遇到了这个问题

在DB上使用存储过程要快得多,当您创建SP时,它会将其编译成一个中间代码,运行速度比在运行时解析标准SQL语句快得多。SP的另一个最大优点是,您可以传入一些参数,并且可以让SP在DB上完成全部工作,这可以使用IF-ELSE语句和案例进行控制,这也可以将应用程序和DB之间的通信量保持在最低限度

SP的最后一个优势是,您可以将DB实现与应用程序实现分开,这意味着如果您在应用程序中的10个不同位置执行插入,那么您需要更改插入的方式,您需要返回并在这10个不同位置更改插入,但是,如果使用SP包装插入,则只需动态更改该SP,应用程序无需知道;)

如果您已经编写了SQL代码,那么您几乎75%的时间都在编写SP


编辑:如果您使用PHP MySQLi,您可能知道也可能不知道调用存储过程会返回2行集,而标准查询只返回1行集,但只要您知道它的到来,这并不是太大的问题:-)

但是使用存储过程会提高性能和安全性吗procedures@DmitryMakovetskiyd有。我不是反对使用它们,只是解释它们是如何使用的。你有什么信息来源可以让我了解如何在mysql中使用它们吗..phpmyadmin?@DmitryMakovetskiyd请参阅关于使用SP与使用