Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net MySQL缓存_.net_Mysql_Database_Enterprise Library - Fatal编程技术网

.net MySQL缓存

.net MySQL缓存,.net,mysql,database,enterprise-library,.net,Mysql,Database,Enterprise Library,昨晚我在mySQL数据库中的存储过程中添加了一个参数。我访问了它,弄乱了参数,并决定再次删除参数进行测试。在重新创建没有参数的过程几分钟后,我的命令对象仍在抱怨缺少参数。这是mySQL、mySQL/Connector、ADO还是Enterprise library的错,我能做些什么呢?默认情况下,mySQL会在存储过程中缓存查询。查看是否启用了查询缓存: SHOW VARIABLES LIKE 'query_cache%' MySQL不会缓存存储过程调用,但如果启用了query\u cache

昨晚我在mySQL数据库中的存储过程中添加了一个参数。我访问了它,弄乱了参数,并决定再次删除参数进行测试。在重新创建没有参数的过程几分钟后,我的命令对象仍在抱怨缺少参数。这是mySQL、mySQL/Connector、ADO还是Enterprise library的错,我能做些什么呢?

默认情况下,mySQL会在存储过程中缓存查询。查看是否启用了查询缓存:

SHOW VARIABLES LIKE 'query_cache%'
MySQL不会缓存存储过程调用,但如果启用了
query\u cache\u type
,则会影响从过程中发出的查询的缓存。可能导致MySQL在几分钟内返回相同的结果。尝试刷新缓存,如果更新的过程一直返回以前的结果集,则最好重置查询缓存以删除所有查询:

RESET QUERY CACHE 
这将消除MySQL服务器的任何缓存

下次发生这种情况时,您可以通过另一个不使用MySQL/Connector或Enterprise Library的工具手动执行该过程。这将告诉您旧的结果集是由MySQL缓存的,还是由应用程序中的驱动程序和应用程序块缓存的

编辑:请阅读以下由desertwebdesign撰写的评论。重新创建存储过程后,断开连接。连接池可以使连接保持打开状态,因此最好终止MySQL的连接。大多数查询浏览器都有一个选项卡,允许您在使用进程/超级权限登录时终止MySQL中的连接


默认情况下,MySQL在存储过程中缓存查询。查看是否启用了查询缓存:

SHOW VARIABLES LIKE 'query_cache%'
MySQL不会缓存存储过程调用,但如果启用了
query\u cache\u type
,则会影响从过程中发出的查询的缓存。可能导致MySQL在几分钟内返回相同的结果。尝试刷新缓存,如果更新的过程一直返回以前的结果集,则最好重置查询缓存以删除所有查询:

RESET QUERY CACHE 
这将消除MySQL服务器的任何缓存

下次发生这种情况时,您可以通过另一个不使用MySQL/Connector或Enterprise Library的工具手动执行该过程。这将告诉您旧的结果集是由MySQL缓存的,还是由应用程序中的驱动程序和应用程序块缓存的

编辑:请阅读以下由desertwebdesign撰写的评论。重新创建存储过程后,断开连接。连接池可以使连接保持打开状态,因此最好终止MySQL的连接。大多数查询浏览器都有一个选项卡,允许您在使用进程/超级权限登录时终止MySQL中的连接


另请参见:如果您没有MySQL权限。另请参见:如果您没有MySQL权限。查询缓存与过程缓存不同。没有MySQL变量/函数来控制过程缓存。重新加载它的唯一方法是使其无效。只有在使用ALTER procedure命令删除、添加或更改过程(不允许更改过程主体)时,才会发生这种情况。假定不使用池或持久连接,缓存将在下一个连接上重建。如果您在mysql.proc表上运行更新来更改主体,我认为这不会使缓存失效。我需要先阅读更多的源代码。查询缓存与过程缓存不同。没有MySQL变量/函数来控制过程缓存。重新加载它的唯一方法是使其无效。只有在使用ALTER procedure命令删除、添加或更改过程(不允许更改过程主体)时,才会发生这种情况。假定不使用池或持久连接,缓存将在下一个连接上重建。如果您在mysql.proc表上运行更新来更改主体,我认为这不会使缓存失效。我需要先读更多的源代码。