昨晚我在mySQL數據庫的存儲過程中添加了一個參數。我訪問它,搞砸了參數,並決定再次刪除參數,進行測試。在沒有參數的情況下重新創建過程之後的幾分鐘內,我的命令對象仍然抱怨缺少參數。這是mySQL,MySQL /連接器,ADO或企業庫的錯,我能做些什麼呢?MySQL高速緩存
回答
默認情況下,MySQL會在您的存儲過程中緩存查詢。查看是否已啓用查詢緩存:
SHOW VARIABLES LIKE 'query_cache%'
存儲過程調用不是由MySQL緩存,但如果query_cache_type
爲ON,這將影響從過程中發出的查詢緩存。可能導致MySQL在幾分鐘內返回相同的結果。嘗試清空緩存,或者更好,重置查詢緩存,如果你的更新程序保存返回先前的結果集刪除所有查詢:
RESET QUERY CACHE
這應該消除MySQL服務器的任何緩存。
下次發生這種情況時,您可以通過另一個不使用MySQL/Connector或Enterprise Library的工具手動執行該過程。這會告訴你舊的結果集是由MySQL還是應用程序中的驅動程序和應用程序塊緩存的。
編輯:請閱讀下面的評論,通過desertwebdesign。重新創建sproc後,放下連接。連接池可能會保持連接處於打開狀態,所以最好從MySQL中終止連接。大多數查詢瀏覽器都有一個選項卡,如果您使用進程/超級特權登錄,則允許您終止MySQL中的連接。
SHOW FULL PROCESSLIST
KILL CONNECTION thread_id
QUERY CACHE與過程高速緩存不同。沒有MySQL變量/函數來控制過程緩存。重新加載它的唯一方法是使其無效。這隻會在使用ALTER PROCEDURE命令刪除,添加或更改過程時發生(不允許您更改過程的主體)。假設您不使用池或持久連接,緩存將在您的下一個連接上重建。如果你在mysql.proc表上運行UPDATE來更改主體,我認爲不會使緩存失效。我需要先閱讀更多源代碼。 – desertwebdesigns 2011-01-20 22:08:55
- 1. mysql select高速緩存優化
- 2. MySQL表高速緩存的命中率
- 3. 使用spring高速緩存的屬性高速緩存
- 4. 元高速緩存或Codeigniter高速緩存
- 5. 從高速緩存下載圖像Android與高速緩存
- 6. 禁用高速緩存中的緩存
- 7. SQL表高速緩存
- 8. 高速緩存行大小
- 9. Symfony2高速緩存問題
- 10. 高速緩存性能
- 11. 防止IE高速緩存
- 12. PHPExcel高速緩存錯誤
- 13. 數組和高速緩存
- 14. Capifony高速緩存錯誤
- 15. CEDET高速緩存錯誤
- 16. Python整數高速緩存
- 17. Sweave高速緩存包
- 18. 高速緩存的模式
- 19. 清除Java高速緩存
- 20. 網絡級高速緩存
- 21. ASP.NET高速緩存唯一
- 22. 清除Webpack高速緩存
- 23. IONIC2高速緩存管理
- 24. 直寫式高速緩存
- 25. IGNITE高速緩存錯誤
- 26. C++ InMemory高速緩存庫
- 27. 高速緩存持久性
- 28. 304 200(從高速緩存)
- 29. java高速緩存超時
- 30. UIImage initWithContentsOfFile:和高速緩存
另見:http://stackoverflow.com/questions/2923979/is-mysql-caching-occurring-how-to-fix-it如果你沒有MySQL的權限。 – 2010-05-27 23:15:29