首页 / 知识
关于 php:准备好的语句是如何工作的?
2023-04-14 21:13:00

How do prepared statements work?我正在编写一些数据库例程,并且正在使用准备好的语句。我的环境是使用 PHP5 的 PDO。 我知道准备好的语句主要提供性能优势,以及一些辅助好处,例如不必手动 SQL 转义输入数据。 我的问题是关于性能部分。 我在下面有两个 getPrice 函数的实现,它接受一个产品 ID 并返回它的价格。 getPrice_A 在同一脚本执行中的后续调用中重复使用同一 PDOStatement 对象。这是必要的还是推荐的?如果是这样,有没有办法避免在每个模型中的每个 get*() 中重复这个额外的代码? getPrice_B 在每次调用时创建一个新的 PDOStatement 对象。 DBMS 是否会认识到该语句已经准备好并且仍然可以跳过一些工作?换句话说,这个实现是否正确地利用了准备好的语句的性能优势? 写完所有这些并仔细阅读后,我想 getPrice_B 很好,而 getPrice_A 提供的好处可以忽略不计,这可能值得,也可能不值得额外的复杂性。 不过,我仍然希望听到更博学的人的肯定。 假设
据我了解,如果是相同的语句,准备好的语句将重用生成的 SQL 计划,因此数据库将看到相同的准备好的语句,而不必做工作来弄清楚如何查询数据库。我会说将准备好的语句保存在 我会说"是的,额外的工作是不必要的"(不管它是否真的提高了性能)。另外,我不是一个非常大的数据库专家,但是预编译语句的性能提升是我从其他人那里听到的,它是在数据库级别,而不是代码级别(所以如果代码实际上是在调用参数化语句实际的数据库,然后数据库可以做这些执行计划缓存......虽然取决于数据库,即使没有参数化语句,您也可以获得好处)。 无论如何,如果您真的担心(并看到)数据库性能问题,您应该研究缓存解决方案……我强烈推荐使用 memcached。使用这样的解决方案,您可以缓存查询结果,甚至不会针对您经常访问的内容访问数据库。 |
最新内容
相关内容
写5条linux命令语句?
写5条linux命令语句?,工作,地址,系统,信息,目录,命令,管理,标准,功能,文件,linux常用的命令有哪些1、linux系统常用操作命令如下:ls:全拼list,功linux数据库查找命令?
linux数据库查找命令?,位置,名称,状态,服务,软件,信息,系统,命令,名字,密码,在linux中如何用命令查找文件在哪使用查找命令 “find”命令允许linux查看性能的命令?
linux查看性能的命令?,系统,情况,信息,数据,状态,指标,第一,分析,命令,宏观,linux查看cpu个数和核心数linux怎么查看cpu的个数?我们一起来了解linux数据库同步命令?
linux数据库同步命令?,信息,系统,汽车,车辆,服务,工作,通信,一致,分析,数据,DB2数据库在linux操作系统的指令有哪些?1、linux系统常用操作命令linux建立数据库命令?
linux建立数据库命令?,软件,系统,工作,数据,密码,工具,数据库,一致,网络,服务,linux中在shell中怎么创建一个数据库1、以下的文章主要讲述的是linux命令进数据库?
linux命令进数据库?,地址,系统,名字,服务,密码,命令,读法,数据库,操作系统,主机,linux系统mysql数据库怎么进入数据库首先确保linux下mysql安linux清空表数据命令?
linux清空表数据命令?,系统,数据,软件,名称,不了,命令,文件,电脑,地址,位置,Linux删除文件的命令?1、linux 删除文件指令:输入rd盘符名:\文件夹linux拷贝数据命令?
linux拷贝数据命令?,系统,地址,文件,数据,命令,目录,服务,基本知识,项目,密码,linux复制命令?1、在Linux中,用于复制文件和目录的命令是cp。cplinux数据库检查命令?
linux数据库检查命令?,服务,状态,地址,位置,系统,信息,命令,工作,情况,密码,在linux中,怎样查看Mysql服务运行状态?1、psaux或netstat-tlunppslinux命令进去数据库?
linux命令进去数据库?,地址,服务,名字,系统,数据库,工具,基础,工作,管理,网络,linux系统mysql数据库怎么进入数据库(linux进入mysql数据库命令linux数据库基础命令?
linux数据库基础命令?,地址,工作,基础,系统,命令,信息,情况,工具,设备,目录,linux下基本命令使用讲解对Linux操作系统进行维护操作的实用命令linux性能测试命令?
linux性能测试命令?,数据,系统,工具,标准,设备,地址,情况,基础,网络,环境,如何排除linux系统的读写缓存进行磁盘性能测试chkdsk。chkdsk的全称