MySQL loop inserts tens of millions of data

MySQL loop inserts tens of millions of data

1. Create a test table

CREATE TABLE `mysql_genarate` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `uuid` varchar(50) DEFAULT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5999001 DEFAULT CHARSET=utf8;

2. Create a stored procedure for loop insertion

CREATE DEFINER=`root`@`localhost` PROCEDURE `test_two1`()
  BEGIN 
  DECLARE i INT DEFAULT 0;
  WHILE i < 3000 DO
    INSERT INTO mysql_genarate ( uuid ) VALUES( UUID() );
    SET i = i + 1;
  END WHILE;
END

Calling the test call test_two1() , it takes several minutes to test 10,000 data. If it is tens of millions of data, this speed will be unbearable.

3. Optimize stored procedures

Use batch insert sql statement

CREATE DEFINER=`root`@`localhost` PROCEDURE `insertPro`( IN sum INT )
  BEGIN
  DECLARE count INT DEFAULT 0;
  DECLARE i INT DEFAULT 0;
  SET @exesql = concat( "insert into mysql_genarate(uuid) values" );
  SET @exedata = "";
  SET count = 0;
  SET i = 0;
  WHILE count < sum DO
    SET @exedata = concat( @exedata, ",(UUID())" );
    SET count = count + 1;
    SET i = i + 1;
    IF i % 1000 = 0 THEN
      SET @exedata = SUBSTRING( @exedata, 2 );
      SET @exesql = concat( "insert into mysql_genarate(uuid) values ​​", @exedata );
      PREPARE stmt FROM @exesql;
      EXECUTE stmt;
      DEALLOCATE PREPARE stmt;
      SET @exedata = "";
    END IF;
  END WHILE;
  IF length( @exedata ) > 0 THEN
    SET @exedata = SUBSTRING( @exedata, 2 );
    SET @exesql = concat( "insert into mysql_genarate(uuid) values ​​", @exedata );
    PREPARE stmt FROM @exesql;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;
  END IF;
END

Calling insertPro(10000) takes a few tenths of a second, which is acceptable.

The above is the details of MySQL loop insertion of tens of millions of data. For more information about MySQL loop insertion, please pay attention to other related articles on 123WORDPRESS.COM!

You may also be interested in:
  • Steps for importing tens of millions of data into MySQL using .Net Core
  • .Net Core imports tens of millions of data into MySQL database
  • Detailed explanation of MySQL database tens of millions of data query and storage
  • Optimizing query speed of MySQL with tens of millions of data using indexes
  • How to quickly paginate MySQL data volumes of tens of millions
  • Optimizing the performance of paging query for MySQL with tens of millions of data
  • How to optimize MySQL tables with tens of millions of data?
  • Sharing ideas on processing tens of millions of data in a single MySQL table

<<:  JS implements multiple tab switching carousel

>>:  Use of Linux bzip2 command

Recommend

Theory: The two years of user experience

<br />It has been no more than two years sin...

MySQL 5.7.23 version installation tutorial and configuration method

It took me three hours to install MySQL myself. E...

Detailed explanation of JavaScript's garbage collection mechanism

Table of contents Why do we need garbage collecti...

How to limit the number of concurrent connection requests in nginx

Introduction The module that limits the number of...

Vue storage contains a solution for Boolean values

Vue stores storage with Boolean values I encounte...

How to calculate the frame rate FPS of web animations

Table of contents Standards for smooth animation ...

Comparative Analysis of MySQL Binlog Log Processing Tools

Table of contents Canal Maxwell Databus Alibaba C...

A brief analysis of CSS3 using text-overflow to solve text layout problems

Basic syntax The use of text-overflow requires th...

Solve the problem of docker's tls (ssl) certificate expiration

Problem phenomenon: [root@localhost ~]# docker im...

Introduction to fork in multithreading under Linux

Table of contents Question: Case (1) fork before ...

Gitlab practical tutorial uses git config for related configuration operations

This article introduces the content related to gi...

Example usage of Linux compression file command zip

The ".zip" format is used to compress f...

Detailed explanation of Vue's monitoring properties

Table of contents Vue monitor properties What is ...

Simple encapsulation of axios and example code for use

Preface Recently, when I was building a project, ...

How to deploy k8s in docker

K8s k8s is a cluster. There are multiple Namespac...