2010-10-21 61 views
0

有一個應用程序或我可以用來檢查哪些緩存功能打開的代碼?如何檢查哪些緩存功能已打開? [PHP/MYSQL]

在這個應用程序我正在努力,我認爲有mysql緩存,但自從我開始在我的查詢之一(應用昨天)中使用SELECT SQL_NO_CACHE,緩存並沒有停止。這導致我認爲這是一個正在發生的PHP緩存功能。

我查看了php.ini中的任何可能的緩存功能,但沒有看到任何突出的東西。

這導致我這樣做:是否有我可以下載的應用程序或Shell函數我可以輸入以告訴我哪些緩存函數處於打開狀態或可能導致緩存的原因。

+2

PHP沒有內置緩存。與緩存相關的所有內容都是非常專有的,因此您將很難找到一個應用程序,告訴您哪些緩存機制已打開。你的問題到底是什麼?什麼讓你覺得緩存正在進行?您已清除瀏覽器緩存? – 2010-10-21 18:09:19

+0

有一種表單可以更改mysql數據庫中的數據值。如果您提交表格,然後重新訪問表格,則新輸入的數據不在字段中。如果我離開幾個小時然後回來,數據就在這些字段中,但在我點擊提交後它就會進入數據庫。 – 2010-10-21 18:11:27

+0

我有mysql緩存打開 - 所以也許我只是沒有正確使用sql_no_cache命令我的mysql查詢? – 2010-10-21 18:12:28

回答

1

您可能已經知道MySQL具有查詢緩存機制。例如,如果您有一個名爲users的表,並運行如下查詢:

SELECT COUNT(*) FROM `users` 

運行可能需要3秒鐘。但是,如果您再次運行查詢,則運行時間可能只需要0.02秒。這是因爲MySQL緩存了第一個查詢的結果。但是,如果以任何方式更新用戶表,MySQL將清除它的緩存。比如插入新行,更新行等。因此,MySQL在這裏是個問題值得懷疑。

我的預感是您的瀏覽器正在緩存數據。代碼中的邏輯也可能會抓取舊行,更新它,然後在表單中顯示舊行數據。我真的不能說沒有看到你的代碼。

0

您可能需要關閉並重新啓動瀏覽器。我敢打賭,這是你的瀏覽器緩存不是後端。

+0

不,這一直髮生在所有其他人在項目上工作 - 蘋果電腦,電腦等... - 傳播光譜 – 2010-10-21 19:12:21

+0

@Bob,如果你不發送緩存頭,所有的瀏覽器將表現相同。您是否嘗試過更新,關閉瀏覽器,重置瀏覽器緩存,然後再次查看頁面? – 2010-10-21 19:26:05

相關問題