Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.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
C# 为什么我的一些查询在MySQL服务器上非常长(超过5000毫秒)?_C#_Mysql_Npoco - Fatal编程技术网

C# 为什么我的一些查询在MySQL服务器上非常长(超过5000毫秒)?

C# 为什么我的一些查询在MySQL服务器上非常长(超过5000毫秒)?,c#,mysql,npoco,C#,Mysql,Npoco,我有一个使用NPoco的C应用程序,它在MySQL服务器上执行许多查询(version5.6.17) 这些查询的通常时间介于ms和40ms之间 然而,有时似乎有些查询占用了通常的时间加上5000 ms,我完全不明白为什么(例如5021 ms)。也总是那些已经是最重的查询具有这种行为(即通常需要40毫秒左右的查询) (我用WAMP包()安装了MySQL服务器,因为我还需要Apache服务器和PHP服务器。) 你知道我应该在哪里解决这个恼人的问题吗?你是否尝试过重复查询并分析出需要很长时间的特定类型

我有一个使用
NPoco
C
应用程序,它在
MySQL
服务器上执行许多查询(
version5.6.17

这些查询的通常时间介于
ms
40ms
之间

然而,有时似乎有些查询占用了通常的时间加上
5000 ms
,我完全不明白为什么(例如
5021 ms
)。也总是那些已经是最重的查询具有这种行为(即通常需要40毫秒左右的查询)

(我用
WAMP
包()安装了
MySQL
服务器,因为我还需要
Apache
服务器和
PHP
服务器。)


你知道我应该在哪里解决这个恼人的问题吗?

你是否尝试过重复查询并分析出需要很长时间的特定类型的查询?我已经从我的C#应用程序中测量了时间。也许MySQL本身提供了一种更好的方法,但我不知道……如果您知道需要花费很长时间的查询,您可以将它们放入MySQL workbench,并将SELECT更改为a。您可能需要在数据库中添加一些额外的内容来加快速度。您可能还需要检查应用程序如何处理连接。如果你让它们打开,你可能会得到一个超时的。可能是一个异常使您的应用程序重新连接,但超时总是需要很长时间(显然,您必须等待),非常感谢您的评论。我试着解释一下,看看它说了什么。我还在应用程序中为每个线程保持一个打开的连接,你认为这可能是我的问题的原因吗?@laurentIsRunning:这取决于线程运行的时间以及线程是否处于“备用”状态。通常,连接只允许在x时间段内处于打开和空闲状态(这在数据库设置中定义)。一旦该时间到期,服务器将关闭连接。如果应用程序随后尝试使用该连接,它最终将以超时异常结束。通常最好尽快关闭连接。使用块是一个很好的技巧