also ich habe 2 mal das gleiche auf verschiedene weise abgefrag und es dauerte verschieden lang...hab hier die 2 codebeispiele...
tabellenstruktur:
0 <= nummer <= 100....die tabelle hat 500.000 zeilen um die performance zu testen
ID| nummer
1 | 3
2 | 99
3 | 3
4 | 6
....
nun die abfrage....ich mochte wissen, wie offt zb. die zahl 5 oder 40 vorkommt:
abfrage 1: dauert 27sec
abfrage 2: dauert nur 4sec
ich dachte immer datenbanken sind dafür gebaut abfragen zu machen? und nicht das ich alles rauslese und dann selber auswerte...hmmm
die ausgabe sieht so aus:
...
3 4888
4 5002
5 5106
6 5108
7 5069
...
tabellenstruktur:
0 <= nummer <= 100....die tabelle hat 500.000 zeilen um die performance zu testen
ID| nummer
1 | 3
2 | 99
3 | 3
4 | 6
....
nun die abfrage....ich mochte wissen, wie offt zb. die zahl 5 oder 40 vorkommt:
abfrage 1: dauert 27sec
Java:
String[] colums = {"nummer","anzahl"};
Object[][] data = new Object[101][2];
for (int i=0;i<=100;i++){
ResultSet rs = st.executeQuery("SELECT ID,nummer FROM test where nummer =" + i);
rs.last();
data[i][0] = i;
data[i][1] = rs.getRow();
rs.close();
}
abfrage 2: dauert nur 4sec
Java:
ResultSet rs = st.executeQuery("SELECT ID,nummer FROM test where ID < 500000");
int[] a = new int[101];
while(rs.next())
{
a[rs.getInt(2)] += 1;
}
for(int i = 0;i<=100;i++){
data[i][0] = i;
data[i][1] = a[i];
}
rs.close();
ich dachte immer datenbanken sind dafür gebaut abfragen zu machen? und nicht das ich alles rauslese und dann selber auswerte...hmmm
die ausgabe sieht so aus:
...
3 4888
4 5002
5 5106
6 5108
7 5069
...
Zuletzt bearbeitet: