php - MySQL 准备好的查询是否为每 session 一次的查询提供性能优势?

标签 php mysql mysqli prepared-statement mdb2

根据文档,如果您多次运行查询,准备好的查询会提供显着的性能优势,因为 MySQL 服务器解析查询的开销只发生一次。我想知道他们所说的“多次”到底是什么意思。

即,假设您有一个运行一次查询的网页。现在假设该页面每秒被调用 50 次。从性能的角度来看,prepare() 查询(因此需要到数据库服务器的两次往返;一次准备查询,一次运行查询)或仅正常发送查询(只需要一次往返)是否更有意义? ? MySQL 和/或 PHP mysqli 驱动程序是否足够智能,可以在上一次调用中准备好查询时意识到这一点?

最佳答案

没有。 PHP 是一种“无共享”架构,因此与一个请求(一个页面 View )关联的每个资源都在该请求结束时被丢弃。准备好的查询不可用于后续数据库连接。

您可以从准备好的查询中获益的场景是您在同一个 PHP 请求期间多次准备和执行它。

关于php - MySQL 准备好的查询是否为每 session 一次的查询提供性能优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/322319/

相关文章:

javascript - 如何简化这个 Javascript 文件

php - fatal error : Call to a member function bind_param() on boolean in php while inputing String from Android app

php - 如果从主表中删除行,MySQL 也会从其他表中删除行

php - 调用 php artisan db :seed does not work without providing a class name

javascript - 为什么我会收到此错误 "Error: Cannot enqueue Handshake after already enqueuing a Handshake."?

android - 检查查询是否在 sqlite for Android 中成功

php - 如何简化codeigniter中的模型函数

php - 关于通过 mysqli 使用更新

php - 使用 PHP-MySQL 插入主/详细记录的最佳方法是什么

php - Magento - 在购物车中显示自定义属性