2014-12-09 4 views
0

나는 mysql 데이터베이스에서 데이터를 가져 오는 java rest API를 사용하는 안드로이드 애플 리케이션을 가지고있다.webservice와 mysql에서 여러 데이터를 쿼리하는 가장 좋은 방법은 무엇입니까?

앱을 연 후 일부 항목의 목록을 다운로드합니다. 그런 다음 다른 연결 리소스를 얻기 위해 api를 쉬는 5 가지 요청을합니다.

먼저 상점 목록을 다운로드합니다. 그런 다음이 상점 ID를 사용하여 api를 5 회의 HTTP 요청을 만들어 mysql에서 사진 목록 (실제 이미지, URL 및 ID 제외), 평점, 영업 시간 및 기타 2 가지를 가져옵니다.

This 6 api (및 db) 호출을하고 오랜 시간이 걸립니다. 더 좋은 방법이 있나요?

+0

이러한 응답을 처리 할 수있다. –

답변

1

여러 쿼리를 단일 JOIN으로 다시 작성하고 단일 네트워크 왕복으로 가져올 수 있습니다.

시간을 어디에서 보냈는지 및 그 이유를 알고 있어야합니다. 인덱스를 사용하지 않는 WHERE 절이 있으면 쿼리가 느려질 수 있습니다. EXPLAIN PLAN을 실행하고 실행중인 TABLE SCAN이 있는지 확인하십시오. 하나가 표시되면 WHERE 절에있는 열에 적절한 인덱스를 추가하여 즉시 성능을 향상시킬 수 있습니다.

1

첫 번째 호출에서 모든 데이터를 검색하지 않는 이유는 무엇입니까? restapi의 응답은 json 또는 xml이 될 수 있습니다.

REQUEST: GET /shop/list 

RESPONSE XML: 
<shops> 
    <shop name="shop1" img="../../img1.jpg" ></shop> 
    <shop name="shop2" img="../../img2.jpg" ></shop> 
    <shop name="shop3" img="../../img3.jpg" ></shop> 
</shops> 

RESPONSE JSON: 
[{name:"shop1",img:"../../img1.jpg"}, 
{name:"shop2",img:"../../img2.jpg"}, 
{name:"shop3",img:"../../img3.jpg"}] 

당신은 당신이 더 나은 최적화하거나 변경할 수있는 방법을 이해하기 위해 몇 가지 코드 조각을 게시 할 수 자바/안드로이드 응용 프로그램

관련 문제