JDBC查询优化分析:

现有以下查询语句:

String sql1 = "select * from userinfo";// 创建语句
String sql2 = "select count(*) from userinfo";// 创建语句
String sql3 = "select count(0) from userinfo";// 创建语句
String sql4 = "select username  from userinfo";// 创建语句

经过试验得出以下结论:

select 子句为*时耗时最长,相当于查询所有字段,字段越少,耗时越短,一个字段耗时最短;

select子句为count(*)与count(0)耗时差不多,但是比查一个字段耗时还要少一些,count(字段名)耗时更长

JDBC中的ResultSet API没有直接获取记录条数的方法,现介绍几个:

方法一:利用ResultSet的last和getRow方法来获得ResultSet的总行数(在查询数据的同时统计记录条数时)

String sql = "select * from userinfo";// 创建语句

Statement statement = conn.createStatement();

ResultSet rs = statement.executeQuery(sql);// 执行SQL语句,并返回一个ResultSet对象rs

rs.last(); //移到最后一行
int rowCount = rs.getRow(); //得到当前行号,也就是记录数
rs.beforeFirst(); //如果还要用结果集,就把指针再移到初始化的位置

system.out.println(rowCount );

方法二:利用sql语句中的count函数获得ResultSet的总行数(仅仅统计记录条数时

String sql= "select count(0) from userinfo";// 创建语句

Statement statement = conn.createStatement();
ResultSet rs = statement.executeQuery(sql);

int rowCount = 0;
if(rs.next())
{
rowCount=rs.getInt(1);
}

system.out.println(rowCount );

JDBC查询优化,统计条数的更多相关文章

  1. mysql count group by统计条数方法

    mysql count group by统计条数方法 mysql 分组之后如何统计记录条数? gourp by 之后的 count,把group by查询结果当成一个表再count一次select c ...

  2. rf统计条数

    js模式 直接引用关键字模式

  3. 【TP3.2.3】根据字段统计条数

    // 省份查询 $province = M('hospital') -> field('area as label,count(*) as value') -> group('area') ...

  4. MySQL 分组后,统计记录条数

    分组后,统计记录条数: SELECT num,count(*) AS counts from test_a GROUP BY num; 查询结果如下: 对num去重后的数量的统计: SELECT co ...

  5. 使用GROUP BY统计记录条数 COUNT(*) DISTINCT

    例如这样一个表,我想统计email和passwords都不相同的记录的条数 CREATE TABLE IF NOT EXISTS `test_users` ( `email_id` ) unsigne ...

  6. 树形DP(统计直径的条数 HDU3534)

    分析:首先树形dp(dfs计算出每个点为根节点的子树的最长距离和次长距离),然后找出L=dis[u][0]+dis[u][1]最长的那个点u,然后在以u为根节点dfs,统计长度为L的条数:具体做法:把 ...

  7. jdbc 连接 mysql 获取 数据集 条数

    package nona; import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; im ...

  8. MySQL 分组之后如何统计记录条数 gourp by 之后的 count()

    SELECT count(*) FROM 表名 WHERE 条件 // 这样查出来的是总记录条 SELECT count(*) FROM 表名 WHERE 条件 GROUP BY id //这样统计的 ...

  9. 【mysql 统计分组之后统计录数条数】

    SELECT count(*) FROM 表名 WHERE 条件 // 这样查出来的是总记录条   SELECT count(*) FROM 表名 WHERE 条件 GROUP BY id //这样统 ...

随机推荐

  1. 记录某公司(简称SMKJ) 的一次面试

    昨天去了一家公司面试 Java 开发岗位,这篇文章主要是做一个面试的记录以及总结. 这家公司的规模大概100-200人,环境还可以,在一栋大厦租了两层办公室(31层和32层).一同搭电梯上去的还有一位 ...

  2. Spark Job的提交与task本地化分析(源码阅读)

    Spark中任务的处理也要考虑数据的本地性(locality),Spark目前支持PROCESS_LOCAL(本地进程).NODE_LOCAL(本地节点).NODE_PREF.RACK_LOCAL(本 ...

  3. oracle导入dmp文件的2种方法

    使用imp.impdp方式导入数据 1.使用imp导入数据 打开cmd窗口,然后直接敲入一下命令即可,需要注意的是,要事先把dmp文件放到正确的路径中去 imp yx_base/@yx_192. fi ...

  4. C语言第三次作业总结

    本次作业的亮点 总体情况 大部分同学基本掌握了单层循环结构的写法,懂得了代码调试的过程 PTA通过率及作业质量都不错,希望再接再厉 推荐博客 黄毓颖 推荐理由:代码思路清晰,格式良好:调试过程相当形象 ...

  5. Git使用方法2.0

    ## Git来源: 最早开始是由Ruby程序员们发起的.Ruby是日本的家伙搞出来的,日本有个代码托管网站叫heroku,当时用这个的人比较多,现在这个网站还能打开,网址是www.heroku.com ...

  6. 20162330 实验三 《敏捷开发与XP实践》 实验报告

    2016-2017-2 实验报告目录: 1 2 3 4 5 20162330 实验三 <敏捷开发与XP实践> 实验报告 课程名称:<程序设计与数据结构> 学生班级:1623班 ...

  7. 从0开始的LeetCode生活—461-Hamming Distance(汉明距离)

    题目: The Hamming distance between two integers is the number of positions at which the corresponding ...

  8. iOS开发-继承特征详解

    面向对象的三大特性:封装,继承,多态. 1.继承 继承既能保证类的完整,又能简化代码. 把公共的方法和实例变量写在子类,子类只需要写父类独有的实例变量和方法即可. 继承是面向对象三大特性之一,合理的继 ...

  9. OO面向对象课程作业1-3总结

    作业一.多项式的加减运算 1.设计要点与自我分析 我设计的类图 老师建议类图 我设计了两个类来进行多项式的计算,类Polynomial进行多项式的存储和输入输出,第二个类进行多项式加减运算.而加减运算 ...

  10. phpadmin增加使得项目能连接数据库

    感谢:http://jingyan.baidu.com/article/e4511cf332b9832b845eaf27.html 值得注意: 1.phpadmin的目录:D:\developsoft ...