2011-04-01 11 views
0

동일한 호스트에 DB 서버와 웹 서버가 있습니다. 웹 서버에 XML을 보내는 iPhone 앱이 있습니다. 웹 서버는 데이터베이스를 쿼리하고 데이터를 다시 앱으로 반환합니다.서버에서 데이터를 가져 오는 가장 빠른 방법은 무엇입니까?

나는이

이보다 더 빨리 거기에 다른 방법이 있습니까 가장 빠른 방법인지 확실하지 않다?

+1

예, 백그라운드 스레드에서 사용하십시오. – BoltClock

+1

스레드는 네트워크 쿼리의 속도를 높이 지 않지만 쿼리가 진행되는 동안 사용자가주의를 산만하게합니다. – Caleb

+0

JSON을 사용해 보셨습니까? 백엔드에 무엇을 사용하고 있습니까? – Jorge

답변

1

서버 - 클라이언트 프로그램에서 서버 병목 현상은 서버 측에서 매우 복잡한 처리 작업을 수행하거나 RDBMS에서 거대한 데이터를 가지고 있고 검색해야하는 경우가 아니면 일반적으로 네트워크 대기 시간입니다.

  1. 당신이, 당신은 캐싱을 병목 현상을 시도 할 수 있습니다되는 데이터베이스를 느끼는 경우 (MemcacheD하고 찾아 :

    은 몇 가지 당신이 빠른 로딩을 위해 시도 할 수 (XML보다 더 스코프)이 있습니다 좋아하는) 개체를 데이터베이스 앞에 놓습니다. 이렇게하면 DB 히트가 줄어들고 검색 속도가 빨라집니다.

  2. XML의 압축을 사용하십시오. 또는 JSON 또는 YAML과 같은 짧은 표기법을 사용하십시오.

    일반적으로 웹 응용 프로그램의 경우 :
  3. 최적화 된 (압축 된) 이미지를 재사용하고 사용하십시오. 가능한 한 더 많은 CSS를 사용하십시오.
  4. CSS 및 JS와 같은 구성 요소를 축소하십시오.
  5. 필요없는 경우 모든 것을 한 번에로드하지 마십시오. 당신이 JSON 또는 YAML 같은 몇 가지 짧은 표기법을 사용할 수 있는지

당신은 XML compressors를 들여다 보거나 수 있습니다. 하지만 이미 응용 프로그램을 개발 한 경우 데이터 형식을 변경하는 것이 어려울 것이라고 생각합니다.

1

XML은 세계에서 가장 컴팩트 한 형식이 아니므로 송수신하는 데이터의 양을 줄임으로써 분명히 속도를 높일 수 있습니다. 데이터베이스와 직접 대화 할 수 있다면 웹 서버를 잘라낼 수 있습니다.

XML과 HTTP는 표준이며, 그 점에서 많은 가치가 있습니다. 유연성을 잃고 개발 시간을 추가로 늘릴만한 가치가있는 맞춤형 프로토콜을 사용하면 속도가 약간 빨라 집니까?

+0

+1 동의 함. HTTP는 데이터 덩어리가 거대하지 않은 거의 모든 것에 적합합니다. –

관련 문제