发表于: 2020-04-27 00:00:50
2 1263
【这是 2020/04/26 的日报】
(因为 昨天的日报晚了一分钟提交,所以今天也只能过12点提交,明天白天的日报将会回复在这篇日报的下方,后天开始日期与日报正常对应)
25.测试一下不关闭连接池的时候,在Main函数里写1000个循环调用会出现什么情况。
A.不使用连接池测试在远程数据库内查询 1000 条数据(54 s)
B.使用 c3p0 连接池测试在远程数据库内查询 1000 条数据(一分钟)
那么现在就很尴尬了,我原来的预测是使用连接池应该要快不少,这个结果还是测试的远程数据库,测本地数据库差距更明显。扭头就去萌新群问了一下大佬,主要这个结果主要是有以下因素造成的。
1.JDBC 的代码相较于我写的第一版已经有了一些改动,之前用 JDBC 测试插入 1000 条数据,我把数据库连接的建立与销毁也写在了插入函数里面,所以插入多少条数据就要开关多少次数据库连接。直接被服务器禁止访问了····
一怒之下我把数据库连接的建立与销毁拿了出来,在这个测试中,数据库的连接与销毁只进行了一次,没那么费资源。
2.连接池在实际工程中确实是个必不可少的东西,但是在这个小工程中并不涉及多线程、高并发之类的,所以不但没啥用处,反而是个累赘···
26.测试一下连接DB中断后TryCatch是否能正常处理。(没问题的)
27.检查一下自己的代码是否符合规范,如果DB的表格有改动,应该改哪些内容,需要多久。
整个项目的结构是这样的:
如果 DB 有变动,main 方法与 测试类要改变这是肯定的,其次就是 DiscipleMapper.xml 映射文件与 Disciple.java 实体文件需要改动。
需要的时间取决于改变的字段数量,因为 Dao 与其实现和具体的字段没有关系,不需要改变。
28.数据库里插入100万条数据,对比建索引和不建索引的效率查别。再插入3000万条数据,然后是2亿条,别说话,用心去感受数据库的性能。
(我的服务器性能太渣了,这里用本地数据库 + JDBC 测试算了,加上连接池是个累赘)
A.没有索引
(a).100W(34 分钟)
B.添加索引后插入
(a).100W(33 分 27 秒)
创建一个多列索引( alter table jnshu_copy1 add index info(id, name, qq); )
感觉100万的数据还看不出来区别,也许是我的数据太简单了或者索引太简单了。考虑要不要跑 1000万甚至一个亿的数据···
明天的计划:
1.完成最后一个步骤
2.比对验收标准
3.开始做深度思考
评论