2008-10-15 5 views

답변

8

내가 Postgres에 경험이 없으므로 MySQL/PostgreSQL 질문에 대해 이야기 할 수는 없지만, Masters 리서치 프로젝트는 CherryPy가있는 고성능 웹 사이트에 관한 것이 었습니다. 귀하의 사이트에 CherryPy를 사용하십시오. 범용 하드웨어에서 수천 명의 동시 사용자로 쉽게 확장 할 수 있습니다.

물론 PHP에서도 마찬가지라고 할 수 있습니다. PHP와 CherryPy 성능을 비교하는 합리적인 벤치 마크를 알지 못합니다. 그러나 CherryPy가 초당 요청 수가 많은 트래픽이 많은 사이트를 처리 할 수 ​​있는지 궁금한 점이 있다면 대답은 확실합니다.

2

더 많은 데이터가 필요합니다. Jeff는 같은 문제에 대해 몇 가지 기사를 작성했으며 답변은 성능 문제가 발생할 때까지 기다리는 것이 었습니다.

- 누가 호스팅을하고 있으며 어떤 호스트에서 사용할 수 있습니까? 당신의 재능 스킬 세트는 무엇입니까? 당신은 외부 회사를 고용 할 예정입니까? 그들은 무엇을 추천합니까? 새로운 프레임 워크를 배우려는 팀이있는 새로운 프로젝트

두 번째 일은 모형을 만드는 것입니다. 인터페이스가 어떻게 작동할까요? 어떤 데이터를로드하고 유지해야합니까? 아이디어는 웹과 DB 측면 사이의 트래픽을 낮추는 것입니다. 예 : 많은 쿼리가 포함 된 수다스러운 페이지가 없습니다.

데이터 요구 사항과 흐름을 더 잘 이해하면 데이터베이스 디자인을 수행하십시오. 따라야 할 규칙이 많이 있지만 좋은 규칙 중 하나는 정규화 규칙을 따르는 것입니다. (참으로 저는 db 남자입니다.)

이제 몇 페이지를 작성하여 테스트를 실행하십시오. 문제가 있습니까? 예, 지금 무엇인지보십시오. Page serving 또는 db pulls? 그런 다음 조치를 취하십시오.

8

이상적인 설정은 this에 가까운 것 : 한마디로

caching

, nginx 그것이 memcached 년대에서 직접 데이터를 가져하자 독특한 모듈과 빠르고 가벼운 웹 서버/전면 프록시 디스크를 치지 않고 RAM 저장소, 또는 동적 웹 응용 프로그램. 물론 요청의 URL이 아직 캐시되지 않은 경우 (또는 만료 된 경우) 평소처럼 요청이 webapp로 진행됩니다. 천재 부분은 webapp이 응답을 생성 할 때 응답 사본이 memcached로 이동하여 재사용 할 준비가되었음을 의미합니다.

이 모든 것은 웹 페이지뿐만 아니라 AJAX 쿼리/응답에도 완벽하게 적용됩니다.

'back'서버는 http이며 특히 mongrel에 대한 이야기입니다. 등이 FastCGI와 다른 (더 빠른) 프레임 워크라면 더 좋을 것입니다. nginx/memcached 팀이 부하의 가장 큰 부분을 흡수하므로 훨씬 덜 중요합니다.

AJAX 트래픽에 대한 URL 스키마가 잘 설계된 경우 (REST가 가장 좋음, IMHO 인 경우) 대부분의 DB를 memcached에 넣을 수 있으며 모든 POST (앱에 전달됨)는 사전에 업데이트 할 수 있습니다 캐시.

3

DB 질문에 대해서는 PostgreSQL의 확장 성이 좋고 MySQL보다 데이터 무결성이 우수하다고 할 수 있습니다. 소규모 사이트의 경우 MySQL이 더 빠를 수도 있지만 데이터베이스 크기가 커질수록 크게 느려집니다. (참고 : 큰 데이터베이스의 경우 MySQL을 사용한 적이 없으므로 확장성에 대한 또 다른 의견을 얻으십시오.) PostgreSQL은 확실히 확장 성이 뛰어나므로 트래픽이 많은 사이트에 적합합니다.

+0

업 투표 , 덕분에, 내가 파이썬 함께 갈 것 같아요, PostgreSQL을 함께 갈 것입니다 – daniels

2

내가 nginx를 + PHP + XCache를 + PostgreSQL을

관련 문제