第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java mysql數(shù)據(jù)庫查詢效率問題

java mysql數(shù)據(jù)庫查詢效率問題

哆啦的時光機 2019-03-21 22:19:16
主要實現(xiàn)的功能是事先通過條件篩選一部分id出來,在通過遍歷這些id找到相應(yīng)的Bfinalstatement,存為對象,放入list,但是發(fā)現(xiàn)數(shù)據(jù)量才達到1000時(1000個Bfinalstatement),給id設(shè)置了index,但需要的總查詢時間都還要500~600ms了,效率太低了,具體關(guān)鍵代碼如下,希望得到幫助,謝謝。(采用了dbcp連接池)    @Override    public BFinalStatement getFinalStatementFromId(String id) throws NamingException, SQLException {        // TODO 得到乙方結(jié)算信息        Connection con = null;        PreparedStatement pr = null;        ResultSet rs = null;        BFinalStatement fstate = null;        sql = "select BConSelfID, PaidAmount, UnpaidAmount, InvoiceTotal, ShouldPay "                + "from bfinalstatement where BConSelfID=?";        con = getConnection();        pr = con.prepareStatement(sql);        pr.setString(1, id);        rs = pr.executeQuery();        while (rs.next()) {            fstate = new BFinalStatement(rs.getInt("PaidAmount"),rs.getString("BConSelfID"));            fstate.setInvoiceTotal(rs.getInt("InvoiceTotal"));            fstate.setShouldpay(rs.getInt("ShouldPay"));            fstate.setUnpaidAmount(rs.getInt("UnpaidAmount"));        }        // 釋放連接        close(con, rs, pr);        return fstate;    }
查看完整描述

2 回答

?
肥皂起泡泡

TA貢獻1829條經(jīng)驗 獲得超6個贊

單個查當(dāng)然慢了,你這個sql就算只要1毫秒,執(zhí)行1000次也1秒了。用where BConSelfID in ()來批量處理會快些,但注意in里面不要太多個ID,一次100一共取10次差不多。

再慢的話就要善用緩存了


查看完整回答
反對 回復(fù) 2019-04-23
?
守候你守候我

TA貢獻1802條經(jīng)驗 獲得超10個贊

-- 修改 BConSelfID = 'xxx'

-- 執(zhí)行以下SQL,將結(jié)果貼出來:


 explain select BConSelfID, PaidAmount, UnpaidAmount, InvoiceTotal, ShouldPay   

 from bfinalstatement where BConSelfID = 'xxx'


查看完整回答
反對 回復(fù) 2019-04-23
  • 2 回答
  • 0 關(guān)注
  • 530 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號