C# 提高从远程数据库获取数据时的性能

C# 提高从远程数据库获取数据时的性能,c#,mysql,winforms,performance,remote-server,C#,Mysql,Winforms,Performance,Remote Server,我使用以下代码连接远程(通过internet)mysql数据库,并用返回的结果填充datagrid。这很好,但是当大约有200行或更多行可用时,填充网格需要一些时间。 我想知道我是否应该做一些调整来加快进程,或者我应该做什么来加快进程 当前编码 connection = new MySqlConnection(db_con_s); connection.Open(); sql = connection.CreateCommand(); sql.CommandTimeout = 5000; sql

我使用以下代码连接远程(通过internet)mysql数据库,并用返回的结果填充datagrid。这很好,但是当大约有200行或更多行可用时,填充网格需要一些时间。 我想知道我是否应该做一些调整来加快进程,或者我应该做什么来加快进程

当前编码

connection = new MySqlConnection(db_con_s);
connection.Open();
sql = connection.CreateCommand();
sql.CommandTimeout = 5000;
sql.CommandText = my_query;
MySqlDataReader Reader1 = sql.ExecuteReader();

if (Reader1 != null && Reader1.HasRows)
{
     while (Reader1.Read())                                    
     {
          cv++;
          dataGridView1.Rows.Add(cv,Reader1.GetString("l_id"), Reader1.GetString("l_code"),...............);
          d1 += Reader1.GetDouble("l_amount");
     }
}

根据您的要求使用分页和获取20/50,并填充到数据网格中。这将提高性能

此外,您还可以通过为筛选数据的列上的数据编制索引来提高查询性能。
由于您没有提供SQL查询,所以where子句中的所有列都必须编制索引,您可以执行以下操作:

DataTable dt = new DataTable();
dt.Load(Reader1);

dataGridView1.DataSource = dt;

看看这是否能提高性能?

什么样的应用程序在使用数据?你能获得分页结果吗?如果mysql支持分页,可能会help@TheSharp Ninja::该数据库是本地运行的小型应用程序的复制从属数据库,该在线数据库将仅用于在主服务器不可访问时查看信息。我想显示员工的所有贷款信息。我的意思是申请的类型是什么?WinForms、WPF、ASP.Net?WinForms。c#.net 4.5查询完全没有问题。还有别的吗。当我直接在远程服务器上执行查询时,只需要不到一秒钟的时间。要执行表中的qry.Is列是否已索引???我怀疑…如果您只需要显示数据,请使用分页获取少量结果…谢谢鸣人。分页确实是一种选择。但是,如果没有它,我无法将事情加速到某个级别,我会使用它。@kumaDK能否请您提供您正在使用的查询结构和表结构……至于本地和远程数据库……由于数据通过网络传输,会有很小的延迟……我怀疑问题是由于索引不正确……我运行了相同的查询使用第三方数据库管理工具直接针对同一个远程数据库,它在大约1.5秒内获取200条记录,这是可以接受的。这意味着我在查询执行或优化方面没有问题。谢谢,我将尝试一下。希望有时这能有所帮助。