Я попытался получить список данных формы, хранящихся в базе данных в приложении для Android. Каждая строка базы данных содержит некоторую личную информацию человека в строчном формате, а также изображение этого человека. Я сохранил изображения в базе данных в формате MEDIUMBLOB.Извлечение данных из базы данных MySQL с использованием библиотеки Android Volley слишком медленно
Всякий раз, когда я пытаюсь получить данные с моего сервера с помощью JSONObjectrequest библиотеки Volley в приложении для Android, ответ обычно очень медленный. Иногда для просмотра всего 10-12 строк, полученных из базы данных, требуется более 1 минуты. Это мой LogCat:
D/Volley: [337] BasicNetwork.logSlowRequests: HTTP response for request=<[ ] http://helpclick.ahsanaasim.me/v1/tasksall/johny 0xa3e020c1 NORMAL 1> [lifetime=14740],
Я пытался найти идеальное решение, но я не мог найти что-нибудь удовлетворительное. Вот мой Java-код:
mRequestStartTime = System.currentTimeMillis();
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET,
showUrl2, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
long totalRequestTime = System.currentTimeMillis() - mRequestStartTime;
System.out.println(totalRequestTime);
System.out.println(response.toString());
try { c1++;
System.out.println(c1);
JSONArray incidents = response.getJSONArray("incidents");
for (int i = 0; i < incidents.length(); i++) {
e=0;
JSONObject incident = incidents.getJSONObject(i);
c1++;
id= incident.getString("id");
age = incident.getString("age");
gender = incident.getString("gender");
location = incident.getString("location");
//det= incident.getString("det");
String image=new String();
image = incident.getString("bigimage");
if(image.length()!=0) {
myBitmap = ConvertToImage(image);
Bitmap bitmap= Bitmap.createScaledBitmap(myBitmap,500,500,true);
imgs.add(bitmap);
ages.add(age);
genders.add(gender);
locations.add(location);
ids.add(id);
}
}
if(c1>0) {
System.out.println(ages.size());
Intent intent1 = new Intent(search_buttons_page.this, All_Incidents.class);
startActivity(intent1);
}
}
catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
System.out.append(error.getMessage());
}
});
jsonObjectRequest.setRetryPolicy(new DefaultRetryPolicy(
20000,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
requestQueue.add(jsonObjectRequest);
Было бы очень полезно, если кто-то может сказать мне причину этого снижения производительности и как ее решить путем минимальных изменений в моем исходном коде.
Каков диапазон и средний размер капли в вашей базе данных? Являются ли конечные точки выборки медленными, если вы извлекаете их из ноутбука/рабочего стола? – halfer