我期待在高流量網站上使用預準備語句加速一些查詢。我不認爲自己正確理解的是使用準備好的語句的好處,除非他們可以通過多個連接保持準備。看起來這對PDO來說也是不可能的,這也不允許持久連接。但持久連接功能不允許PDO。mysql永久準備語句
可以說,爲了討論我運行一個查詢5000次每秒: SELECT * FROM some_table WHERE some_column LIKE「SOME_VALUE」
從我個人理解,PDO將阻止MySQL的從重新編譯和評估每次我需要查詢時,查詢是否要更改「some_value」。我也明白,「some_value」可以用二進制而不是ASCII來傳輸以節省帶寬,但如果我每次打開連接時都必須發送整個查詢,那麼節省的不多。
也從我讀過的,存儲過程不是解決方案,因爲那些不保留編譯通過多個連接。
有沒有解決這個問題的辦法?將準備好的語句存儲在服務器的某個地方,讓它在內存中編譯並準備在收到變量後立即觸發?
有什麼辦法可以通過將連接池與PDO結合來實現嗎? (雖然我也聽到了連接池是不理想的,因爲它可能會導致在一定的條件下阻止)
如果你想使用持久連接,則必須設置PDO :: ATTR_PERSISTENT的驅動程序選項傳遞給PDO構造數組中。如果在實例化對象後將此屬性設置爲PDO :: setAttribute(),則驅動程序將不會使用持久連接。 – 2012-07-23 02:39:58
爲什麼不使用Memcached? – 2012-07-23 02:41:28