【发布时间】:2015-09-19 00:24:39
【问题描述】:
我有一个 C# 应用程序可以访问基于 LAN 的 mysql 服务器进行数据库操作,它工作正常。但是,一旦我尝试访问远程 mysql 服务器,打开 MySQL 连接和查询执行的时间就会大大增加,这会导致主线程上出现类似挂起的情况。
仅打开一个 MySQL 连接大约需要 1-3 秒,会影响 GUI。
除了在另一个线程上运行 MySQL 操作之外,还有什么方法可以避免这种情况?
【问题讨论】:
我有一个 C# 应用程序可以访问基于 LAN 的 mysql 服务器进行数据库操作,它工作正常。但是,一旦我尝试访问远程 mysql 服务器,打开 MySQL 连接和查询执行的时间就会大大增加,这会导致主线程上出现类似挂起的情况。
仅打开一个 MySQL 连接大约需要 1-3 秒,会影响 GUI。
除了在另一个线程上运行 MySQL 操作之外,还有什么方法可以避免这种情况?
【问题讨论】:
可能有两个原因。第一个 mysql 服务器有很多打开的连接,因此管理新客户端的速度很慢,因此请使用 root 超级权限或 root 帐户等进程权限检查服务器状态-
Mysql> show processlist;
+----+-------------+-------------------+------+---------+------+----------------------------------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-------------+-------------------+------+---------+------+----------------------------------+------------------+
| 2 | system user | | NULL | Connect | 1188 | Waiting for master to send event | NULL |
| 5 | root | smart.local:39850 | NULL | Query | 0 | init | show processlist |
+----+-------------+-------------------+------+---------+------+----------------------------------+------------------+
2 rows in set (0.00 sec)
第二种可能是连接器有问题。 MySql Connector .Net 6.6.5 在我们这边也存在这个问题。 MySql 连接器 .Net 6.8.3 正在解决这个问题。
如果两者都可以,那么链接可能会有所帮助。
Very slow opening MySQL connection using MySQL Connector for .net
【讨论】: