2009-07-17 78 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查詢緩存

注意

查詢緩存不用於 準備好的語句。如果您正在使用 準備好的語句,請考慮 這些語句不會被查詢緩存滿足 。