Boa tarde pessoal!
Eu estou com um enorme problema, que é seguinte.
Eu tenho andado a desenvolver uma aplicação que visa a gestão da minha pequena empresa familiar.
Quando comecei a desenvolve-la em JAVA com uma base de dados em MYSQL e até aqui tudo funcionou bem pois a base de dados teve sempre no computador em que a aplicação era executada.
Mas eu agora queria colocar a base de dados num servidor online e estou a usar este www.freemysql.net
O problema é que as minha queries demoravam cerca de 80 milisegundos a ser executadas localmente, e agora que passei para uma base de dados online este tempo subiu para 2600 milisegundos, que é muito tempo quando se quer fazer uma pesquisa a base de dados.
A minha questão é se é normal estes tempos de espera ou se sou eu que não estou a optimizar bem para trabalhar via web.
Vou deixar aqui as queries de select que uso normalmente
public ArrayList<Car> selectMat(String matricula){
ArrayList<Car> lstCar = new ArrayList<Car>();
ResultSet rs;
query.open();
try {
rs = query.select("select * from car"+
" INNER JOIN mark ON(car.idMarca = mark.idMark)"+
" INNER JOIN model ON(car.idModelo = model.idModel) WHERE matricula like '"+matricula+"%'");
Mark mark = null;
Model model = null;
while (rs.next()) {
mark = new Mark(rs.getInt("idMark"), rs.getString("mark"));
model = new Model(rs.getInt("idModel"), rs.getString("model"), mark);
lstCar.add(new Car(rs.getString("matricula"), rs.getString("VIN"), mark,
model, rs.getDate("dataFabrico"), rs.getInt("yearMake"), rs.getString("tipoMotor"),
rs.getInt("cc"), rs.getString("fuel"), null));
}
query.close();
} catch (SQLException e) {
query.close();
e.printStackTrace();
}
return lstCar;
}
/**
* @return Retorna uma LinkedList com todos os carros existentes na base de dados
* @see LinkedList
* @since V 1.5
* */
public ArrayList<Car> select() {
long time = System.currentTimeMillis();
ArrayList<Car> lst = new ArrayList<Car>();
ResultSet rs;
try {
query.open();
rs = query.selectPrepared("select * from car"+
" INNER JOIN mark ON(car.idMarca = mark.idMark)"+
" INNER JOIN model ON(car.idModelo = model.idModel)", null);
Mark mark = null;
Model model = null;
while (rs.next()) {
mark = new Mark(rs.getInt("idMark"), rs.getString("mark"));
model = new Model(rs.getInt("idModel"), rs.getString("model"), mark);
lst.add(new Car(rs.getString("matricula"), rs.getString("VIN"), mark,
model, rs.getDate("dataFabrico"), rs.getInt("yearMake"), rs.getString("tipoMotor"),
rs.getInt("cc"), rs.getString("fuel"), null));
}
query.close();
} catch (SQLException e) {
e.printStackTrace();
query.close();
}
System.out.println(System.currentTimeMillis()- time);
return lst;
}
Agradecia imenso a vossa ajuda!
Cumps, Tiago
