微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何利用准备好的声明表现?我知道如果我把它放在一个循环中,这样的东西可能会有好处:
SELECT `Name` FROM `Hobbits` WHERE `ID` = :ID;

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

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

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

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐