数据库测试

文章链接:http://www.liuschen.com

测试MYSQL数据库操作性能

建立3个相互关联的表:

create table table_test1(id varchar(50) primary key not null,table_c1 varchar(50),table_c2 varchar(40),table_c3 varchar(40),table_c4 varchar(40));

create table table_test2(id varchar(50) primary key not null,table2_c1 varchar(50),table2_c2 varchar(40),table2_c3 varchar(40),table2_c4 varchar(40),test1_id varchar(50) not null,foreign key(test1_id) references table_test1(id));

create table table_test3(id varchar(50) primary key not null,table3_c1 varchar(50),table3_c2 varchar(40),table3_c3 varchar(40),table3_c4 varchar(40),test2_id varchar(50) not null,foreign key(test2_id) references table_test2(id));

第一个表为主表,第二个表为第一个表的从表,第三个表为第二个表的从表。

然后通过sql语句插入数据(插入数据的关系为,主表一条数据,从表为10条,从表的从表为100条):

| 插入主表的条目 	| 执行消耗的时间 	| CPU消耗的时间  | 删除表耗时 |
| ------------- |:-------------:| -------------:|----------:|
| 1      		| <1s 			| <1s 			| <1s 		|
| 10      		| <1s      		| <1s			| <1s		|
| 100 			| 5s      		| 5s 			| <1s		|
| 1000 			| 55s      		| 55s 			| 9s		|
| 2000 			| 296s      	| 296s 			| 59s		|
| 3000 			| 1350ss      	| 1350ss 		| 574s		|
| 4000 			| 3741s      	| 3741s 		| 930s		|

插入40万条数据(严格来说是444000条)时就已经执行了很长时间,要1个小时多。按照增加的速度,下一次将会好几个小时才能执行完成。那么,如果要在这种情况下插入100w+测试数据没有几天根本跑不下来。

Loading Disqus comments...
Table of Contents