MySQL中如何批次插入資料

wxjzqym發表於2016-06-23
平常在做SQL最佳化時經常需要自己在測試環境中構建大量的資料,下面透過一個簡單的儲存過程來實現批次資料的插入過程。

1.建立測試表
mysql> show create table house\G
*************************** 1. row ***************************
       Table: house
Create Table: CREATE TABLE `house` (
  `unitid` int(11) DEFAULT NULL,
  `housename` varchar(20) COLLATE utf8_bin DEFAULT NULL,
  `status` int(11) DEFAULT NULL,
  KEY `unitid` (`unitid`),
  KEY `index_name` (`housename`),
  KEY `index_status_housename` (`status`,`housename`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
1 row in set (0.00 sec)


2.建立批次插入資料的儲存過程
mysql> delimiter //
mysql> create procedure myproc() 
    -> begin 
    -> declare num int; 
    -> set num=1; 
    -> while num < 500000 do 
    -> insert into house values(num,concat('''1-',num,''''),mod(num,2));
    -> set num=num+1;
    -> end while;
    -> end
    -> //
Query OK, 0 rows affected (0.00 sec)


3.批次插入資料
mysql> call myproc
    -> //
Query OK, 1 row affected (52.33 sec)


4.驗證資料
mysql> select status,count(*) from house group by status;
    -> //
+--------+----------+
| status | count(*) |
+--------+----------+
|      0 |   249999 |
|      1 |   250000 |
+--------+----------+
2 rows in set (0.16 sec)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/20801486/viewspace-2120771/,如需轉載,請註明出處,否則將追究法律責任。

相關文章