建表語句:
create
table
ifnot
exists
`dept`
(`id`
intunsigned
primary
keyauto_increment
,`deptno`
mediumint
unsigned
notnull
default0,
`dname`
varchar(20
)not
null
default"",
`loc`
varchar(13
)not
null
default"")
engine
=innodb
default
charset
=gbk;
create
table
ifnot
exists
`emp`
(`id`
intunsigned
primary
keyauto_increment
,`empno`
mediumint
unsigned
notnull
default0,
`ename`
varchar(20
)not
null
default"",
`job`
varchar(9
)not
null
default"",
`mgr`
mediumint
unsigned
notnull
default0,
`hiredata`
date
notnull
,`sal`
decimal(7
,2)not
null
,`comm`
decimal(7
,2)not
null
,`deptno`
mediumint
unsigned
notnull
default0)
engine
=innodb
default
charset
=gbk;
# 生成長度為n的隨機字串
delimiter $$ # 作用是定義換行符為$$,因為函式編寫中需要換行用到 ;
create
function rand_string(n int
)returns
varchar
(255
)begin
# 宣告變數
declare chars_str varchar
(100
)default
'abcdefghijklmnopqrstuvwxyz'
;declare return_str varchar
(255
)default'';
declare i int
default0;
while i
set return_str = concat(return_str,substring(chars_str,floor(
1+rand()*
25),1
));set i = i+1;
endwhile
;return return_str;
end $$
# 隨機生成乙個整形數字
delimiter $$
create
function rand_num(
)returns
int(6)
begin
declare i int
default0;
set i = floor(rand()*
10+100)
;return i;
end $$
# 往emp 表中插入 id從start開始的 max_num 條資料
delimiter $$
create
procedure insert_emp(
instart
int(10)
,in max_num int(10
))begin
declare i int
default0;
set autocommit=0;
# 關閉自動提交!!!
repeat
set i = i+1;
# 儲存過程中呼叫了之前定義的函式 rand_num()、rand_string(int n)
insert
into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno)
values((
start
+i),rand_string(6)
,'saleman'
,0001
,curdate(),
2000
,400
,rand_num())
; until i
endrepeat
;commit
;# 提交事務
end $$
# 往dept表中插入....
delimiter $$
create
procedure insert_dept(
instart
int(10)
,in max_num int(10
))begin
declare i int
default0;
set autocommit =0;
repeat
set i = i+1;
insert
into dept(deptno,dname,loc)
values((
start
+i),rand_string(10)
,rand_string(10)
);until i=max_num
endrepeat
;commit
;end $$
插入40w條資料:
此時使用40w條資料測試索引查詢的優勢就很明確了:
MySQL批量插入千萬級別的資料
使用mysql插入千萬級別的資料,如果使用單條的插入,在時間效能上肯定會讓人懷疑人生。這裡為了學習,收集了網上幾個對於mysql插入大資料量的部落格,以便自己後面的學習。1 mysql批量插入資料庫實現語句效能分析 2 mysql千萬級別資料批量插入只需簡單三步 3 關於批量插入資料之我見 100萬...
MySQL使用儲存過程插入千萬級資料如何提公升效率?
mysql測試任務 使用儲存過程,往表中插入千萬級資料,根據索引優化速度 1.使用索引查詢 2.不使用索引查 3.比較兩者查詢速度的差異 1.建立索引測試表 drop table if exists index test create table index test id bigint 20 pr...
mysql千萬級資料查詢
1.mysql的資料查詢,大小欄位要分開,這個還是有必要的,除非一點就是你查詢的都是索引內容而不是表內容,比如只查詢id等等 2.查詢速度和索引有很大關係也就是索引的大小直接影響你的查詢效果,但是查詢條件一定要建立索引,這點上注意的是索引字段不能太多,太多索引檔案就會很大那樣搜尋只能變慢 3.查詢指...