C#从mysql检索大型数据表花费的时间太长(200k-20列记录)

C#从mysql检索大型数据表花费的时间太长(200k-20列记录),c#,mysql,database,datatable,dataset,C#,Mysql,Database,Datatable,Dataset,我正试图从datatable中获取一些数据 这是我的密码 public DataTable getAllProducts() { MySqlConnection conSQL = new MySqlConnection(connectionString); conSQL.Open(); MySqlCommand getProductsCMD = new MySqlCommand(@"SELECT

我正试图从datatable中获取一些数据 这是我的密码

          public DataTable getAllProducts()
    {
        MySqlConnection conSQL = new MySqlConnection(connectionString);
        conSQL.Open();
        MySqlCommand getProductsCMD = new MySqlCommand(@"SELECT
                                                  products.*
                                                FROM products", conSQL);
        MySqlDataAdapter adapter = new MySqlDataAdapter(getProductsCMD);
        DataSet productDataSet = new DataSet();
        adapter.Fill(productDataSet, "Products");
        conSQL.Close();

        if (productDataSet.Tables[0].Rows.Count > 0)
        {
            return productDataSet.Tables[0];
        }
        return null;
    }
填充数据表几乎需要10秒,并且至少需要800mb的内存。之后我将它转储到一个更轻的类中,我的应用程序将下降到70mb。 问题是10秒(至少)。时间太长了。有没有办法让它更快

更新:

对于那些说部分调用您的数据的人。我试过了 mysql阻碍了这一过程。还有另外一个名单,我们从批发200k。它需要扫描,然后检查我们的数据库中是否有该产品。 20万次从mysql请求只需要一个datarow,程序就可以扫描它并执行它的过程,这大约需要40分钟 但如果我在程序中加载所有数据表并在我自己的程序中进行过滤,则需要大约5分钟才能完成整个工作。
所以mysql在这种情况下是一个瓶颈

有多少种产品?内存使用表明有很多,所以您真的需要全部加载它们,而不是按需加载/响应搜索/以分页形式加载吗?从数据库加载到宇宙中可能会很痛苦。为什么你会对20万条记录占用大量内存感到惊讶?为了更快地加载更少的列或行。占用这么多内存我没有任何问题。它的逻辑。但问题在于数据表中充满了数据。MySQL需要花费太长的时间。要提高效率,可以做的一件事是打开一个数据读取器,并在其中循环创建类。这至少可以避免一步。不过,如果可能的话,最好只加载您需要的数据,而不是加载整个数据集。好主意,迈克。问题是我需要所有的。有多少种产品?内存使用表明有很多,所以您真的需要全部加载它们,而不是按需加载/响应搜索/以分页形式加载吗?从数据库加载到宇宙中可能会很痛苦。为什么你会对20万条记录占用大量内存感到惊讶?为了更快地加载更少的列或行。占用这么多内存我没有任何问题。它的逻辑。但问题在于数据表中充满了数据。MySQL需要花费太长的时间。要提高效率,可以做的一件事是打开一个数据读取器,并在其中循环创建类。这至少可以避免一步。不过,如果可能的话,最好只加载您需要的数据,而不是加载整个数据集。好主意,迈克。问题是我需要所有这些。