C# access mysql and retrieve data via dapper batch by batch

Install-Package Mysql.Data;
Install-Package Dapper;

 

using Dapper;
using MySql.Data.MySqlClient;
using System.Data;
using System.Diagnostics;

namespace ConsoleApp9
{
    internal class Program
    {
        static void Main(string[] args)
        {
            AccessMySQL();
            Console.WriteLine($"Finished,Now:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.ffff")},{personsList.Count} items,{GetMemory()}");
        }

        private static string GetMemory()
        {
            var memory = Process.GetCurrentProcess().PrivateMemorySize64 / 1024 / 1024;
            return $"Memory:{memory.ToString("#,###.00")} M";
        } 

        static List<int> personsList = new List<int>();
        private static void AccessMySQL()
        {
            try
            {
                string connStr = @"server=localhost;database=mydb;uid=userNameValue;pwd=passwordValue;";
                using (var conn = new MySqlConnection(connStr))
                {
                    conn.Open();
                    string sql = "SELECT id FROM t1 order by id desc limit 1";
                    var result = conn.Query<int>(sql).FirstOrDefault();

                    int batchSize = 1000000;
                    var batchCount = Math.Ceiling((double)result / (double)batchSize);
                    for (int i = 0; i < batchSize; i++)
                    {
                        sql = $"select id from t1 where id >= {i * batchSize} and id < {(i + 1) * batchSize};";
                        var tempPersons = conn.Query<int>(sql);
                        personsList.AddRange(tempPersons);
                        Console.WriteLine($"Now:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.ffff")},{personsList.Count} items,{GetMemory()},{sql}\n\n");
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
    }
}

 

 

 

 

image

 

 

 

 

image

 

 

 

 

image

 

posted @ 2025-10-08 21:30  FredGrit  阅读(3)  评论(0)    收藏  举报