JDBC查询优化,统计条数
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查询优化,统计条数的更多相关文章
- mysql count group by统计条数方法
mysql count group by统计条数方法 mysql 分组之后如何统计记录条数? gourp by 之后的 count,把group by查询结果当成一个表再count一次select c ...
- rf统计条数
js模式 直接引用关键字模式
- 【TP3.2.3】根据字段统计条数
// 省份查询 $province = M('hospital') -> field('area as label,count(*) as value') -> group('area') ...
- MySQL 分组后,统计记录条数
分组后,统计记录条数: SELECT num,count(*) AS counts from test_a GROUP BY num; 查询结果如下: 对num去重后的数量的统计: SELECT co ...
- 使用GROUP BY统计记录条数 COUNT(*) DISTINCT
例如这样一个表,我想统计email和passwords都不相同的记录的条数 CREATE TABLE IF NOT EXISTS `test_users` ( `email_id` ) unsigne ...
- 树形DP(统计直径的条数 HDU3534)
分析:首先树形dp(dfs计算出每个点为根节点的子树的最长距离和次长距离),然后找出L=dis[u][0]+dis[u][1]最长的那个点u,然后在以u为根节点dfs,统计长度为L的条数:具体做法:把 ...
- jdbc 连接 mysql 获取 数据集 条数
package nona; import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; im ...
- MySQL 分组之后如何统计记录条数 gourp by 之后的 count()
SELECT count(*) FROM 表名 WHERE 条件 // 这样查出来的是总记录条 SELECT count(*) FROM 表名 WHERE 条件 GROUP BY id //这样统计的 ...
- 【mysql 统计分组之后统计录数条数】
SELECT count(*) FROM 表名 WHERE 条件 // 这样查出来的是总记录条 SELECT count(*) FROM 表名 WHERE 条件 GROUP BY id //这样统 ...
随机推荐
- class 选择器
class 选择器 1.class 选择器用于描述一组元素的样式,class 选择器有别于id选择器,class可以在多个元素中使用. 2.class 选择器在HTML元素中以class属性(即cla ...
- oracle创建表空间、创建用户并赋予权限
分开执行如下sql语句 --创建临时表空间 CREATE SMALLFILE TEMPORARY TABLESPACE "TEMP11" TEMPFILE 'E:\app\MD\o ...
- 敏捷开发冲刺--day3
1 团队介绍 团队组成: PM:齐爽爽(258) 小组成员:马帅(248),何健(267),蔡凯峰(285) Git链接:https://github.com/WHUSE2017/C-team 2 ...
- 20162302 实验四《Android程序设计》实验报告
实 验 报 告 课程:程序设计与数据结构 姓名:杨京典 班级:1623 学号:20162302 实验名称:Android程序设计 实验器材:装有Android Studio的联想拯救者80RQ 实验目 ...
- java 注解的实现机制
一.什么是注解: 注解是标记,也可以理解成是一种应用在类.方法.参数.属性.构造器上的特殊修饰符.注解作用有以下三种: 第一种:生成文档,常用的有@param@return等. 第二种:替代配置文件的 ...
- Document Object Model
什么是DOM W3C制定的书写HTML分析器的标准接口规范 全称 Document Object Model 文档对象模型DOM为HTML文档提供的一个API(接口) 可以操作HTML文档 <! ...
- 深入理解java的static关键字
static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列 ...
- JAVA_SE基础——13.选择结构语句
if选择结构 语法: if(条件){ 代码块 } public class Test{ public static void main(String[] args){ int a = 5; if(a ...
- Linux--初次体验
关于Linux已经听闻很久的大名了,但是一直没有机会来使用,这次趁着放假的机会,来体验一把Linux吧. 之前使用visuabox和Ubuntu16,但是虚拟机总是不能连接互联网,在虚拟机上面无法上网 ...
- Python-迭代器&生成器&装饰器&软件目录结构规范-Day5
目录Day-Python-迭代器&生成器 21.生成器 21.1.生成器引入 21.2.生成器作用 31.3.创建生成器的方法 31.4.用函数来实现复杂的生成器 51.5.把函数变成生成器通 ...