MySQL中如何批次插入資料
平常在做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)
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於PHP往mysql資料庫中批次插入資料例項教程PHPMySql資料庫
- MySQL 如何實現資料插入MySql
- 在ASP.NET中,向資料庫批次插入資料 (轉)ASP.NET資料庫
- 使用JDBC向MySQL資料庫批次插入10W條資料測試效率JDBCMySql資料庫
- Elasticsearch5.x批次插入資料(Java)ElasticsearchH5Java
- Oracle批次插入測試資料的方法Oracle
- Entity Framework Core 7中高效地進行批次資料插入Framework
- [MYSQL -19]插入資料MySql
- mybatis oracle資料庫批次插入資料,忽略主鍵重複MyBatisOracle資料庫
- Mysql高效插入/更新資料MySql
- spark on yarn 資料插入mysqlSparkYarnMySql
- mybatis批次插入MyBatis
- Mybatis如何動態生成插入的列及批次插入值MyBatis
- ORACLE資料庫中如何插入生僻字Oracle資料庫
- 如何批次新建資料夾?
- mysql避免插入重複資料MySql
- shell插入遠端mysql資料MySql
- mongodb資料庫中插入資料MongoDB資料庫
- mysql插入資料時如果有相同資料就不插入或者替換MySql
- 自增長主鍵回顯實現,批次資料插入
- mybatis+oracle 批次插入多條資料的處理方法MyBatisOracle
- Mysql在資料插入後立即獲取插入的IdMySql
- python資料插入連線MySQL資料庫PythonMySql資料庫
- MySQL:JDBC批量插入資料的效率MySqlJDBC
- 19. 使用MySQL之插入資料MySql
- MySQL 中如何歸檔資料MySql
- 如何向mysql中批量插入大量sql語句MySql
- oracle如何插入timestamp資料Oracle
- python如何將資料插入資料庫Python資料庫
- MySQL(四) 資料表的插入、更新、刪除資料MySql
- mybatis插入資料、批量插入資料MyBatis
- MySQL 資料庫表格建立、資料插入及獲取插入的 ID:Python 教程MySql資料庫Python
- 批次新建資料夾並命名的辦法 如何批次新建很多資料夾
- MYSQL資料插入和更新的語法MySql
- myeclispe中向mysql中插入中文資料出現??問題解決辦法LispMySql
- 在MySQL資料庫中,這4種方式可以避免重複的插入資料!MySql資料庫
- 【MySQL】面試官問我:MySQL如何實現無資料插入,有資料更新?我是這樣回答的!MySql面試
- mysql從一張表中取出資料插入到另一張表MySql