欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL循環(huán)插入千萬(wàn)級(jí)數(shù)據(jù)

 更新時(shí)間:2020年09月16日 10:06:34   作者:Mr.Yong  
這篇文章主要介紹了MySQL如何實(shí)現(xiàn)循環(huán)插入千萬(wàn)級(jí)數(shù)據(jù),幫助大家更好的理解和使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下

1、創(chuàng)建測(cè)試表

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、創(chuàng)建一個(gè)循環(huán)插入的存儲(chǔ)過(guò)程

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

調(diào)用測(cè)試call test_two1(), 測(cè)試10000條數(shù)據(jù)耗時(shí)幾分鐘,如果是千萬(wàn)級(jí)數(shù)據(jù),這個(gè)速度將無(wú)法忍受。

3、優(yōu)化存儲(chǔ)過(guò)程

使用批量插入的sql語(yǔ)句

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

調(diào)用 call insertPro(10000) ,耗時(shí)零點(diǎn)幾秒,這個(gè)速度可以接受。

以上就是MySQL循環(huán)插入千萬(wàn)級(jí)數(shù)據(jù)的詳細(xì)內(nèi)容,更多關(guān)于MySQL循環(huán)插入的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • MySql使用skip-name-resolve解決外網(wǎng)鏈接客戶端過(guò)慢問題

    MySql使用skip-name-resolve解決外網(wǎng)鏈接客戶端過(guò)慢問題

    在騰訊云上面搭建的mysql使用開發(fā)的電腦上navicat進(jìn)行訪問時(shí)總是特別的慢,原來(lái)是Mysql會(huì)對(duì)請(qǐng)求的地址進(jìn)行域名解析,開發(fā)的電腦并沒有域名,所以會(huì)導(dǎo)致特別的慢,下面通過(guò)本文給大家分享MySql使用skip-name-resolve解決外網(wǎng)鏈接客戶端過(guò)慢問題
    2017-07-07
  • IPv6設(shè)置后如何解決MySQL無(wú)法連接localhost的問題

    IPv6設(shè)置后如何解決MySQL無(wú)法連接localhost的問題

    這篇文章主要介紹了IPv6設(shè)置后如何解決MySQL無(wú)法連接localhost的問題,需要的朋友可以參考下
    2016-04-04
  • Windows下MySQL5.7.18安裝教程

    Windows下MySQL5.7.18安裝教程

    這篇文章主要為大家詳細(xì)介紹了Windows下MySQL5.7.18安裝教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • mySQL UNION運(yùn)算符的默認(rèn)規(guī)則研究

    mySQL UNION運(yùn)算符的默認(rèn)規(guī)則研究

    SQL UNION運(yùn)算符的默認(rèn)規(guī)則研究,學(xué)習(xí)union的朋友可以參考下。
    2009-07-07
  • Win7 64位 mysql 5.7下載安裝常見問題小結(jié)

    Win7 64位 mysql 5.7下載安裝常見問題小結(jié)

    這篇文章主要介紹了Win7 64位 mysql 5.7下載安裝常見問題小結(jié),本文圖文并茂給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2017-06-06
  • MySQL子查詢操作實(shí)例詳解

    MySQL子查詢操作實(shí)例詳解

    這篇文章主要介紹了MySQL子查詢操作,結(jié)合實(shí)例形式較為詳細(xì)的分析了mysql表的創(chuàng)建、常見子查詢運(yùn)算與關(guān)鍵字使用技巧,需要的朋友可以參考下
    2018-06-06
  • 解析Mysql臨時(shí)表及特點(diǎn)

    解析Mysql臨時(shí)表及特點(diǎn)

    本篇文章是對(duì)Mysql中的臨時(shí)表以及特點(diǎn)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • 與MSSQL對(duì)比學(xué)習(xí)MYSQL的心得(七)--查詢

    與MSSQL對(duì)比學(xué)習(xí)MYSQL的心得(七)--查詢

    在這個(gè)《與MSSQL對(duì)比學(xué)習(xí)MYSQL的心得》系列里面,我一直都把MYSQL跟SQLSERVER進(jìn)行比較,相互進(jìn)行比較是學(xué)習(xí)一樣?xùn)|西比較好的方法
    2014-08-08
  • MySql各種查詢方式詳解

    MySql各種查詢方式詳解

    如果是做數(shù)據(jù)分析,MySQL里面最重要、最常用的就是數(shù)據(jù)查詢,數(shù)據(jù)查詢不只是簡(jiǎn)單查詢數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù),還要根據(jù)需求對(duì)數(shù)據(jù)進(jìn)行篩選、聚合,以及確定數(shù)據(jù)以什么樣的格式進(jìn)行顯示。MySQL提供了強(qiáng)大、靈活的語(yǔ)句和函數(shù)來(lái)實(shí)現(xiàn)查詢的操作
    2022-07-07
  • mysql 8.0.29 卸載問題小結(jié)

    mysql 8.0.29 卸載問題小結(jié)

    近我將筆記本重裝了,為了保留之前的程序,我把相關(guān)的注冊(cè)表和環(huán)境備份了下來(lái),重裝之后重新導(dǎo)入成功再現(xiàn)了部分軟件,下面給大家分享mysql 8.0.29 卸載問題記錄,感興趣的朋友一起看看吧
    2024-04-04

最新評(píng)論