2011-11-13 2 views
0

1500-2000 명의 활성 사용자가 동시에 대규모로 모든 성능을 향상시키는 가장 빠른 방법입니다.성능을위한 MySQL 테이블/필드 구조

40 + 회원 정보는

  • 는 3 개 개의 다른 테이블로 테이블에
  • 별도의 모든 필드를 넣어 위와
  • 같은 (왼쪽에서 질의 저하 될 수 있습니다 조인 있지만)을 왼쪽 가입 사용하지만 필드 3 개 별도의 쿼리는 데이터

모든 40+ 필드가없는보기를해야 할 것인가를 검색 할 수 있지만 프로파일을 볼 때, 약 15+ 검색 쿼리를 수행 할 때 약 30 +가 될 것입니다.

내 생각에 모든 것을 하루 안에 유지한다는 것은 내가 원하는 특정 필드를 선택하는 하나의 빠른 쿼리를 의미합니다. 여러 테이블을 더 예쁘더라도 쿼리 및/또는 왼쪽 조인을 사용하여 필요한 모든 것을 가져올 수 있습니다. 소수의 사용자가 문제는 아니지만 천천히 느려집니다. 이견있는 사람?

답변

0

정적 행 길이의 경우 MyISAM에서 더 적은 열이있을 수 있습니다. InnoDB에서 (그리고 나는이 엔진을 사용하기를 희망한다.) 테이블 분리의 이점은 없을 것이다.

제 생각에는 모든 것을 하나의 테이블에 보관하십시오.

각 경우에 적절한 용액을 사용하십시오. 예 : search - 스핑크스, 세션 및 사용자 정보 - memcache.