数据库测试
测试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+测试数据没有几天根本跑不下来。