为了账号安全,请及时绑定邮箱和手机立即绑定

JDBC数据库操作解惑

JDBC数据库操作解惑

慕运维8079593 2019-05-22 22:27:22
目前在测试JDBC数据库多线程操作,想要提高效率,无奈发现每次运行的SQL执行时间不太一样,遍历ResultSet的时间,也不太一样为了方便观察,我采用单线程单Session会话模拟,核心代码try(Connectionconnection=DBUtils.openConnection()){for(inti=0;i
查看完整描述

2 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

数据库查询时间粗略地可以分为:
建立网络连接
sql语句传输
sql语句解析
sql语句执行
数据传输
客户端数据处理等
这里(1)可能因使用连接池,使得时间不尽相同,取决于连接池的实现和参数设置,可能某一次与其他次建立连接时间不一样;(2)基本为定值,但也有可能在客户端进行PreparedStatement缓存而不一致;(3)同(2),数据库会对解析进行缓存,第一次可能和第二次不一样;(4)数据库一会对执行过的sql进行短时间缓存;(5)取决于数据量和网速,对于同样的数据量变化不大;(6)取决于客户端代码,但一般会小于ms级.
这里还没有考虑数据库服务器端的配置和是否有主从及负载均衡的配置等等.
所以你测试的数据是变化的很正常不过了,需要采集大量数据,最好是与业务相似的使用场景才有价值.
                            
查看完整回答
反对 回复 2019-05-22
  • 2 回答
  • 0 关注
  • 345 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信