ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

c#-使用MySQL Connector for .net打开MySQL连接的速度非常慢

2019-10-13 20:16:05  阅读:866  来源: 互联网

标签:mysql-connector azure mysql c-4-0 c-2


我试图解决使用.NET的MySQL连接器打开连接时来自MySQL的响应时间过长的问题.

我已经使用–skip-name-resolve安装了在Azure VM(Server 2008)上运行的MySQL 5.5,并且数据库用户帐户的主机限制正在使用IP地址.我在运行在Azure上的WCF服务中使用的是最新的MySQL连接器.net(在美国东区的同一位置,我一直在使用试用订阅,未设置相似性).我在WCF服务中的连接字符串使用托管MySQL的VM的内部IP地址作为服务器参数值.我也有“ pooling = true; Min Pool Size = 2;”以防万一(我也尝试过不使用这些参数).

跟踪WCF时,一旦服务运行并且处理请求就很好了(即使每个查询结果都是唯一的,因此也不会被缓存),查询响应时间就很好.如果MySQL经常受到打击,那么MySQL的性能也没有问题.

但是我无法破解的巨大问题是,在大约3或4分钟内未对数据库进行任何调用之后,获得与MySQL Open的连接所花费的时间.如果几分钟没有进行数据库调用,则需要8或9秒或更长时间才能再次打开连接.我包装了实际的“ conn.open();”在调用前后都有跟踪语句,这是我在几分钟不活动后一次又一次看到记录的行为.

顺便说一句,我也尝试(并且仍在使用)连接处理的“使用”样式,以确保MySQL Connector正在管理连接池.

例如.:
使用(var conn = new MySqlConnection(Properties.Settings.Default.someConnectionString)){…语句..}

我觉得我对此已经走到了尽头,因此任何建议将不胜感激.

解决方法:

我可以解释一下您的问题“在大约3或4分钟内未对数据库进行任何调用之后,获得与MySQL Open的连接所花费的时间.如果在几分钟内未进行数据库调用,则需要8或9秒或更多以再次打开连接.”为什么会发生:

Windows Azure网站使用热(活动)网站和冷(非活动)网站的概念,其中,如果网站没有活动连接,则网站进入冷态状态,表示主机IIS进程退出.与该网站建立新连接后,需要花费几秒钟的时间才能使网站准备就绪并可以正常工作.当您具有与此网站关联的MySQL后端时,由于IIS主机进程花了一些时间才能开始使用该服务,因此花更多的时间才能获得请求的服务.这就是在活动几分钟后响应时间较长的原因.

您可以查看以下演示文稿,以获取有关Windows Azure热(活动)和冷(不活动)网站的更多详细信息:
http://video.ch9.ms/teched/2012/na/AZR305.pptx

目前,我不确定并且不知道如何才能使网站始终保持热门状态,即使移至共享网站还是根本不可能.我可以建议您将问题写给Windows Azure WebSites Forum,该团队中的某人将为您提供适当的答案.

标签:mysql-connector,azure,mysql,c-4-0,c-2
来源: https://codeday.me/bug/20191013/1910231.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有