加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP PDO:缓存的mysql查询准备了多长时间?

发布时间:2020-12-13 13:45:22 所属栏目:PHP教程 来源:网络整理
导读:如何利用准备好的声明表现?我知道如果我把它放在一个循环中,这样的东西可能会有好处: SELECT `Name` FROM `Hobbits` WHERE `ID` = :ID; 我已经读过,使用预处理语句循环比没有循环更快,但是其他准备好的语句会略微降低性能.那么 – 这个循环有多大? 如果我
如何利用准备好的声明表现?我知道如果我把它放在一个循环中,这样的东西可能会有好处:
SELECT `Name` FROM `Hobbits` WHERE `ID` = :ID;

我已经读过,使用预处理语句循环比没有循环更快,但是其他准备好的语句会略微降低性能.那么 – 这个循环有多大?

如果我在代码的开头运行一个复杂的SQL查询并在最后用一个不同的参数重复它 – 第二个查询会运行得更快吗? (我们为每个页面加载使用单个连接).缓存查询是否有限制,所以我最好立即重复我的查询?

如何使用完全相同的参数执行整个脚本两次(重新加载页面或2个用户)?

准备好的查询将提供给SQL服务器,SQL服务器将对其进行解析并可能已准备好执行计划.然后,您基本上会为这些已分配的资源分配一个id,并且可以通过填写语句中的空白来执行此预准备语句.您可以根据需要随时运行此语句,数据库不必重复解析和执行计划,这可能会提高速度.

只要你不丢弃这个陈述,这个陈述将“保持准备”多久就没有硬性超时.它不是缓存,它是SQL服务器上的已分配资源.至少只要数据库驱动程序在SQL API中使用本机预处理语句.默认情况下,PDO不会这样做,除非您将PDO :: ATTR_EMULATE_PREPARES设置为false.

但是,在脚本执行结束时,所有这些资源将始终被释放,它们不会在不同的页面加载中持久存在.除此之外,SQL服务器可能会或可能不会缓存查询及其结果一段时间,无论客户端脚本如何.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读