mysql导入100000000需要多久_MYSQL批量插入千万级数据只需百秒
1.首先建立一張student表函數
create table(id int(20) NOT NULL AUTO_INCREMENT,sex char(1),name varchar(20));spa
2.建立兩個隨機函數,用來生成用戶名和性別string
#隨機生成name
delimiter $$
CREATE FUNCTION rand_name(n INT)
RETURNS VARCHAR(20)
BEGIN
DECLARE chars_str varchar(100) DEFAULT
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
DECLARE return_str varchar(255) DEFAULT '';
DECLARE i INT DEFAULT 0;
WHILE i < n DO
SET return_str = concat(return_str,substring(chars_str ,
FLOOR(1 + RAND()*52 ),1));#52表明在52個字母中隨即找出一個
SET i = i +1;
END WHILE;
RETURN return_str;
END
$$it
#隨機生成性別
delimiter $$
CREATE FUNCTION rand_sex(n INT)
RETURNS VARCHAR(20)
BEGIN
DECLARE chars_str varchar(100) DEFAULT '01';
DECLARE return_str varchar(255) DEFAULT '';
DECLARE i INT DEFAULT 0;
WHILE i < n DO
SET return_str = concat(return_str,
substring(chars_str , FLOOR(1 + RAND()*2 ),1));
SET i = i +1;
END WHILE;
RETURN return_str;
END
$$
table
3.寫存儲過程,思路是首先生成數據,而后一塊兒commitim
delimiter $$
CREATE PROCEDURE insertData()
begin
set @a=1; ? ? #學號
SET autocommit=0;
while @a<100000000 do ? ? #若是@a<2000010001則返回true,繼續執行
#若是@a<2000010001則返回true,繼續執行
set @b=rand_name(5); ? ? #姓名,隨即賦值,值為5位a-zA-Z的任意組合
set @c=rand_sex(1); ? ? ? ? ? #性別,隨即賦值,值為1位,0或者1
insert into student(name,sex) values(@b,@c);
set @a=@a+1;
end while;
COMMIT;
End
$$
數據
總結
以上是生活随笔為你收集整理的mysql导入100000000需要多久_MYSQL批量插入千万级数据只需百秒的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: libgcc_s.so.1 mysql_
- 下一篇: java对象的类型转换_Java对象的类