昨晚我在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