2009-07-17 58 views
1

我只是想知道如何准备查询工作。我正在使用PHP和MySQL。准备好的查询在服务器端“持续”多久?

我知道准备的查询编译查询,然后重复使用只需要更改参数,因此它节省了时间。但是编译后的查询有多长时间?何时需要重新评估?是否只要PHP脚本运行?或者只要连接到数据库存在?在这种情况下,持久连接会对它产生什么影响?

回答

4

ryeguy,他们持续的连接长度。根据MySQL手册:

准备好的语句特定于创建它的会话。如果您在不取消分配先前准备好的语句的情况下终止会话,服务器会自动释放它。

如果您没有使用持久连接,那么当您的脚本完成执行(或者您明确地释放它或关闭连接)时,这将被释放。如果使用持久连接,则它将使用相同的持久连接持久保存在多个PHP会话中。

+0

该死的,只要你能让它们持续更久 – Xeoncross 2009-12-04 21:20:03

0

据我所知,只要存储它的变量在范围内,准备好的查询就只会“持续”。我想可能有一些方法来缓存准备好的查询供以后使用,但我不知道MySQL是否这样做。

0

hobodave是正确的,他们只是最后只要了会议,他们在创建

还有另一个要考虑的,太:

7.5.5。 MySQL查询缓存

注意

查询缓存不用于 准备好的语句。如果您正在使用 准备好的语句,请考虑 这些语句不会被查询缓存满足 。