zhour560 2011-05-12 17:17
浏览 346
已采纳

对于大数据量,并且matchs方法耗时,如何提升以下代码执行速度?多线程?还是?

public class Test {

public static void main(String[] args) {
    ResultSet results = null;
    List<Integer> ids = new ArrayList<Integer>();
    String querySQL = "select id, value from tb";

    try {
        Class.forName("com.mysql.jdbc.Driver").newInstance();
        Connection con = java.sql.DriverManager
        .getConnection(
                "jdbc:mysql://localhost/demo?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull",
                "root", "root");
        results = con.createStatement().executeQuery(querySQL);
        String value;
        while (results.next()) {

            value = results.getString("value");

            if (matches(value)) {
                ids.add(results.getInt("id"));
            }
        }   

        con.close();
    } catch (SQLException e) {
        e.printStackTrace();
    } catch (InstantiationException e) {
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

public static boolean matches(String value) {
    ......
    ......
    ......

    return flag;
}

}

  • 写回答

8条回答 默认 最新

  • iihero_ 《SybaseASE15.X全程实践》书籍作者 2011-05-14 19:44
    关注

    [quote]不好意思,我题目有点问题,match其实两个参数,一个是前台传过来的参数,是会变的,另外一个是数据库中某一列的值。[/quote]

    这样的话,如果不使用存储过程,也没什么优化的余地了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

悬赏问题

  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作