我只是想知道如何準備查詢工作。我正在使用PHP和MySQL。準備好的查詢在服務器端「持續」多久?
我知道準備的查詢編譯查詢,然後重複使用只需要更改參數,因此它節省了時間。但是編譯後的查詢有多長時間?何時需要重新評估?是否只要PHP腳本運行?或者只要連接到數據庫存在?在這種情況下,持久連接會對它產生什麼影響?
我只是想知道如何準備查詢工作。我正在使用PHP和MySQL。準備好的查詢在服務器端「持續」多久?
我知道準備的查詢編譯查詢,然後重複使用只需要更改參數,因此它節省了時間。但是編譯後的查詢有多長時間?何時需要重新評估?是否只要PHP腳本運行?或者只要連接到數據庫存在?在這種情況下,持久連接會對它產生什麼影響?
ryeguy,他們持續的連接長度。根據MySQL手冊:
準備好的語句特定於創建它的會話。如果您在不取消分配先前準備好的語句的情況下終止會話,服務器會自動釋放它。
如果您沒有使用持久連接,那麼當您的腳本完成執行(或者您明確地釋放它或關閉連接)時,這將被釋放。如果使用持久連接,則它將使用相同的持久連接持久保存在多個PHP會話中。
據我所知,只要存儲它的變量在範圍內,準備好的查詢就只會「持續」。我想可能有一些方法來緩存準備好的查詢供以後使用,但我不知道MySQL是否這樣做。
hobodave是正確的,他們只是最後只要了會議,他們在創建
還有另一個要考慮的,太:
7.5.5。 MySQL查詢緩存
注意
查詢緩存不用於 準備好的語句。如果您正在使用 準備好的語句,請考慮 這些語句不會被查詢緩存滿足 。
該死的,只要你能讓它們持續更久 – Xeoncross 2009-12-04 21:20:03