菜鳥寫了個對主鍵是否重復進行一個判斷的方法。
mysql現在存有45萬行數據,,就調用這方法判斷就花了三四秒,但是直接mysql裡直接查詢cid主鍵列只需要0.00幾秒不知道這裡為什麼這麼慢,求解
後面大約還有一百多萬行數據要錄入。查詢速度不久幾何翻倍咯。求代碼優化給點建議或者重寫,,
public static boolean getcid(int cid){
Conn conn=null; //Conn是封裝好了對mysql數據庫進行數據增刪查改的方法的封裝類
boolean gg=true; //存取主鍵是否重復的變量。默認true
PreparedStatement st = null;
String sqll="SELECT cid FROM b";
ResultSet rs;
try {
conn=new Conn();
st=conn.prepareStatement(sqll);
rs=st.executeQuery();
while(rs.next()) //遍歷結果集,,如果查詢到cid已存在,方法返回false
if(rs.getInt("cid")==cid)
{
gg=false;
break;
}
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return gg;
}
為什麼String sqll="SELECT count(cid) FROM b where cid"=cid;這裡拼上where呢
客戶端取全部結果集影響速度因素
1、網絡因素
2、java獲取後創建對象