预准备语句与存储过程
2022-08-30 20:15:32
如果您使用的是 php5 和 mysql5,那么与预准备语句相比,使用存储过程是否有实质性的优势?(我在某处读到你可能不会从mysql5存储的proc中获得实质性的性能提升)
如果您使用的是 php5 和 mysql5,那么与预准备语句相比,使用存储过程是否有实质性的优势?(我在某处读到你可能不会从mysql5存储的proc中获得实质性的性能提升)
它们实际上不是一回事 - 对于存储过程,数据库逻辑驻留在数据库中。预准备语句基本上可以避免在多次调用查询时重新分析查询 - 性能优势可能会有很大差异。
选择使用其中一个实际上取决于您的具体情况。我不再真正使用存储的过程,因为我喜欢将所有逻辑放在一个地方。
存储过程对于专业级(IE 企业级)应用程序有意义,在这些应用程序中,您可以:
还有其他原因。
准备好的语句更适合在会话内完成的工作。但是,如果您花时间创建预准备语句,则基本上已经完成了创建存储过程所需的所有操作。不同之处在于,存储过程可跨多个会话使用(受制于数据库中的 GRANTS)。
我无法弄清楚的是,如果您可以选择存储proc与预准备语句,那么为什么您会为预准备语句而烦恼。大多数SP与PS的讨论似乎都集中在它们之间的差异上,而不是为什么使用一个与另一个。这似乎总是归结为“取决于你想做什么”。但是我还没有看到一个组织良好的描述:如果你需要,请使用proc,如果需要,请使用一个语句。