发表于: 2017-12-26 17:22:29

3 686


主要是完成任务25的在main里面测试1000次的查询---->

主要的的代码就是这个

  

测试完成后(测试成功)

控制台里面的打印的信息

运行成功

运行的过程中明显的感觉就是运行的时间在边长---->不像以前的马上就在控制台里面打印出最后的信息---->Junit测试运行完成

接下来就是中断DB,看异常能否捕捉到----->

开始正常运行一次

断开DB错误的密码mybatis里面的密码少个6

再次运行测试

我还测试另一种把表的名字删除一个n

运行打印的信息

测试了连个信息的错误的DB断开---->可以try ---catch捕捉到异常

任务26try--catchDB断开可以捕捉到异常

准备检查自己的代码的规范是否合格----->

如果DB的表有改动------>

要保证查询的信息保证可以查询到

开始的模型层的字段要改一下------>那个是和后面的查询的字段相对应的

还有需要修改的地方就是category.XML查询的语句对应的SQL的具体用到字段语句需要修改

还有需要修改的地方就是插入数据的具体修改的字段需要修改(在测试类的里面)

要修改的地方知识对应的字段修改的地方---->java的代码最好要少的修改

最多的是XML里面的配置详细信息修改

对于上面如果DB里面的信息发生了改变 --->修改了也就几分钟可以讲对应的字段修改好----->花费的时间比较短就可以完成

接下来就是讲数据库里面插入100万条数据

不知道怎么了运行了1000条就不运行了

可能是username的字段的范围有关

在师兄的指点下package com.java.test;

 

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.SQLException;

public class InsertTest {

public static void main(String[] args) {

Connection conn = DBUtil.getConnection();

String sql = "insert into stu_information (username,classes,birthday,city,qq,words,phone) values (?,?,?,?,?,?,?)";

try {

PreparedStatement prep = conn.prepareStatement(sql);

// 将连接的自动提交关闭,数据在传送到数据库的过程中相当耗时

conn.setAutoCommit(false);

long start = System.currentTimeMillis();

for (int i = 0; i < 10; i++) {

long start2 = System.currentTimeMillis();

// 一次性执行插入10万条数据

for (int j = 0; j < 100000; j++) {

prep.setString(1, "老大"+i*j);

prep.setString(2, "java");

prep.setInt(3, 1995-02-02);

prep.setString(4, "成都");

prep.setInt(5, 18515465);

prep.setString(6, "插入100万条记录");

prep.setInt(7, 11598257);

// 将预处理添加到批中

prep.addBatch();

}

// 预处理批量执行

prep.executeBatch();

prep.clearBatch();

conn.commit();

long end2 = System.currentTimeMillis();

// 批量执行一次批量打印执行依次的时间

System.out.print("inner"+i+": ");

System.out.println(end2 - start2);

}

long end = System.currentTimeMillis();

System.out.print("total: ");

System.out.println(end - start);

} catch (SQLException e) {

e.printStackTrace();

} finally {

try {

conn.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

http://blog.csdn.net/zhangjinpeng66/article/details/10416721(参考的文档)

最后运行的时间的输出

在数据库里面

我在cmd控制台里面查询了一下

我在控制台里面查询了一下全部的数据跑了好久

100万次太久了我就测试没有索引的查询

添加了索引的速度加快

 

开始老大说的量级不够----?>现在觉得100万的查询的时间的的数据差别也是不很大

100万的数据量的测试完成了----->看见那个索引的优越性还是有一点不是很明显

接下来准备3000万的数据

这次写进去的数据感觉时间很久运行了很久现在才10个循环---->还有90个循环

这个写入的速度很慢---->可能太多了

终于运行完了(找了一个偏后面的数据改了一下准备测试)

开始是没有索引的测试(这次比较明显29s左右)

接下来建立索引的查询测试(这个索引的作用比较直观)

测试基本就感受到比较直观了

 

今天完成的事情:前面的数据库里面插入100万条记录和3000万条记录,在开始100万比较轻松,3000万的时候那个就时间比较久,后面测试的索引和没有索引的记录也比较直观,查询的效率和速度也比较直观,还有try---catchde 异常能够捕捉到的实现

 

明天的计划:准备将自己关于任务一学习的做一个总结---->还有将项目的提交到GitHub是上面

 

今天遇到的困难:就是在插入数据3000万的数据.电脑快爆炸了----->运行了一个多小时终于搞定了最后的数据库性能测试

 

今天的收获:感觉索引的强大,还有好处,还有开始数据怎么插入到数据库这么大的数量

加油----->坚持

 



返回列表 返回列表
评论

    分享到