0

나는 Heroku의 레일 웹 사이트를 운영 중이며 일부 성능 프로파일 링 및 개선 작업을 수행 중입니다.Heroku Postgres 쿼리 속도 속도 확인. 내가 잘못하고 있니?

Heroku에서 Postgres 성능을 프로파일 링 한 경험이있는 사람이라면 분명히 잘못된 작업을하고 있는지 또는이 데이터베이스 호출이 실제로 느릴 것으로 예상되는지 알 수 있습니다.

약 3000 개의 행이있는 Cities라는 테이블의 SELECT입니다. country_id에 대한 색인이 있습니다.

은 여기 image showing profiling of the slow call

이미지를 읽을 수 있다면, 당신은 내가, SELECT 이름, 슬러그를 호출하고있어 것을 ... "도시", "도시"에서 볼 수 있습니다. "country_id"= 151이다.

이 호출 (Heroku에서 생산 중)은 Miniprofiler에 따라 14.739 초 걸렸습니다. 이 호출은 2 초에서 25 초까지 소요되는 것으로 보이며, 그 국가의 도시 수 사이에는 약간의 상관 관계가 있습니다 (2에서 50 사이). 개발 중에는 1 초도 걸립니다.

저는 Heroku에서 호스팅 한 Postgres를 $ 10 계획에서 실행하고 있습니다.

지금 당장이 호출이 내 페이지에서 사용되는 내용을 AJAX로로드하는 것에 대해 생각하고 있지만, 오랜 시간이 걸릴 것이라고 생각하지 않습니다.

누구든지 아이디어가 있습니까?

참고로이 사이트는 www.istorical.com에서 발견하고 실제 사이트를 공격 할 경우, 당신이 그것을 찾을 수 있습니다 www.istorical.com/countries/russia에게

를로드 할 때이 호출은 일어났다 수 있습니다 이 호출은 페이지의 캐시가 만료되었을 때만 수행되기 때문에로드하는 데 오랜 시간이 걸리지 않습니다.

편집 : 여기는 EXPLAIN (analyze,verbose,buffers) of the query입니다.

+0

미안하지만, 귀하의 웹 디자인에 대해 축하드립니다. 또한 $ 10 계획은 공유 데이터베이스가 생산 준비가되지 않은 개발 계획입니다. 그렇지 않습니까? – danihp

+0

감사합니다. 나는 생산을 위해 무엇이 필요한지 정말로 모른다. 기하 급수적 인 성장은 기대하지 않지만이 사이트는 첫 번째 실제 제작 사이트이므로 서로 다른 수준의 트래픽에 실제로 필요한 리소스가 무엇인지 알지 못합니다. 내가 Heroku Postgres Basic에있어, 내가 $ 10 계획의 의미를 지우면. – newtorails

답변

1

더 많은 Explain analysis 테스트를 실행합니다. 그러나 모두가 그와 같이 나왔다면 데이터베이스가 아닙니다. 이 쿼리는 20ms 만 소요됩니다.

다른 쿼리가 정상적으로 보인다면 데이터베이스 연결에 일반적인 것이 아닙니다.

해당 페이지에 원격 서버와 통신중인 데이터/이미지 등을 가져 오는 것이 있습니까?