• c# insert data bulkly into mysql per 10000 or 1000


    CREATE TABLE `person5` (
      `Id` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
      `Name` longtext,
      `PId` int NOT NULL,
      PRIMARY KEY (`Id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
    CREATE TABLE `person6` ( `Id` varchar(
    128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `Name` longtext, `PId` int NOT NULL, PRIMARY KEY (`Id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using MySql.Data;
    using MySql.Data.MySqlClient;
    using System.IO;
    using System.Diagnostics;
    
    namespace ConsoleApp27
    {
        class Program
        {
            static void Main(string[] args)
            {
                Task t1 = Task.Run(() =>
                 {
                     MySQLInsertDataDemo();
                 });
    
                Task t2 = Task.Run(() =>
                  {
                      MySQLInsertDataDemo2();
                  }); 
                Task.WaitAll(new Task[] { t1, t2 }); 
            }
    
            static void MySQLInsertDataDemo()
            {
                string connString = "Server=localhost;Port=3306;Database=mydb;Uid=root;Pwd=Root;";
                using (MySqlConnection conn = new MySqlConnection(connString))
                {
                    conn.Open();
                    int k = 0;
                    for (int i = 0; i < 1000; i++)
                    {
                        Stopwatch sw = new Stopwatch();
                        sw.Start();
                        int insertedRows = 0;
                        StringBuilder sqlBuilder = new StringBuilder();
                        sqlBuilder.Append("insert into person5 values");
                        for (int j = 0; j < 10000; j++)
                        {
                            sqlBuilder.Append("('" + Guid.NewGuid().ToString() + "','" + "Fred" + k + "','" + k + "'),");
                            k++;
                        }
                        using (MySqlCommand cmd = new MySqlCommand())
                        {
                            cmd.Connection = conn;
                            cmd.CommandTimeout = 0;
                            string insertSQL = sqlBuilder.ToString();
                            int lastCommaIndex = insertSQL.LastIndexOf(',');
                            cmd.CommandText = insertSQL.Remove(lastCommaIndex);
                            insertedRows = cmd.ExecuteNonQuery();                       
                        }
                        sw.Stop();
                        string msg = $"{DateTime.Now.ToString("yyyyMMddHHmmssffff")},time cost:{sw.ElapsedMilliseconds},insertedRows:{insertedRows},loop:{i}";
                        File.AppendAllText("Time5.txt", msg + Environment.NewLine + Environment.NewLine);
                        Console.WriteLine(msg);
                    }
                }
            }
    
            static void MySQLInsertDataDemo2()
            {
                string connString = "Server=localhost;Port=3306;Database=mydb;Uid=root;Pwd=Root;";
                using (MySqlConnection conn = new MySqlConnection(connString))
                {
                    conn.Open();
                    int k = 0;
                    for (int i = 0; i < 10000; i++)
                    {
                        Stopwatch sw = new Stopwatch();
                        sw.Start();
                        int insertedRows = 0;
                        StringBuilder sqlBuilder = new StringBuilder();
                        sqlBuilder.Append("insert into person6 values");
                        for (int j = 0; j < 1000; j++)
                        {
                            sqlBuilder.Append("('" + Guid.NewGuid().ToString() + "','" + "Fred" + k + "','" + k + "'),");
                            k++;
                        }
                        using (MySqlCommand cmd = new MySqlCommand())
                        {
                            cmd.Connection = conn;
                            cmd.CommandTimeout = 0;
                            string insertSQL = sqlBuilder.ToString();
                            int lastCommaIndex = insertSQL.LastIndexOf(',');
                            cmd.CommandText = insertSQL.Remove(lastCommaIndex);
                            insertedRows = cmd.ExecuteNonQuery();                        
                        }
                        sw.Stop();
                        string msg = $"{DateTime.Now.ToString("yyyyMMddHHmmssffff")},time cost:{sw.ElapsedMilliseconds},insertedRows:{insertedRows},loop:{i}";
                        File.AppendAllText("Time6.txt", msg + Environment.NewLine + Environment.NewLine);
                        Console.WriteLine(msg);
                    }
                }
            }
        }
    }
  • 相关阅读:
    centos7安装nginx
    linux经常使用的命令
    linux 安装 VNC
    linux配置yum源
    docker服务器、以及容器设置自动启动
    docker初步学习以及常用命令
    Docker命令详解(run篇)
    Linux scp命令
    Linux常用命令学习31个
    Linux下解压tar.xz文件
  • 原文地址:https://www.cnblogs.com/Fred1987/p/14037399.html
Copyright © 2020-2023  润新知