JDBC查询优化,统计条数

时间:2021-09-24 22:00:52

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. Subsets II

    Given a collection of integers that might contain duplicates, nums, return all possible subsets. Not ...

  2. [Head First设计模式]生活中学设计模式——外观模式

    系列文章 [Head First设计模式]山西面馆中的设计模式——装饰者模式 [Head First设计模式]山西面馆中的设计模式——观察者模式 [Head First设计模式]山西面馆中的设计模式— ...

  3. [wikioi]石子归并

    http://wikioi.com/problem/1048/ 区间型动态规划.参考PPT:http://wenku.baidu.com/view/73c1ded5b9f3f90f76c61bc4.h ...

  4. Web---创建Servlet的3种方式、简单的用户注册功能

    说明: 创建Servlet的方式,在上篇博客中,已经用了方式1(实现Servlet接口),接下来本节讲的是另外2种方式. 上篇博客地址:http://blog.csdn.net/qq_26525215 ...

  5. 【转】如何实现一个malloc

    任何一个用过或学过C的人对malloc都不会陌生.大家都知道malloc可以分配一段连续的内存空间,并且在不再使用时可以通过free释放掉.但是,许多程序员对malloc背后的事情并不熟悉,许多人甚至 ...

  6. Ubuntu10.04中间Leach协议一键安装

    半天后,尝试,引用网络上的零散资源,成品博客Leach协议ubuntu10.04在安装(12.04也可以在右侧安装,然而,实施效果的不,求解决~~),并制作了补丁. 一个关键的安装步骤如下面: 1.在 ...

  7. Effective Java 第三版——39. 注解优于命名模式

    Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...

  8. NSTimer 不工作 不调用方法

    比如,定义一个NSTimer来隔一会调用某个方法,但这时你在拖动textVIew不放手,主线程就被占用了.timer的监听方法就不调用,直到你松手,这时把timer加到 runloop里,就相当于告诉 ...

  9. maven本地上传jar包

    maven本地上传jar包 在命令行中输入下面指令(是一行): mvn install:install-file -Dfile=D:\mvn\spring-context-support-3.1.0. ...

  10. echarts和highcharts比较

    echarts底层为canvas,highcharts底层为svg canvas特点: ①依赖分辨率 ②不支持事件处理器 ③弱的文本渲染能力 ④能够以.jpg..png格式保存结果图像 ⑤最适合图像密 ...