2010-04-22 2 views
0

저는 장고, 스핑크스 및 MySQL을 사용하여 매우 빠르게 커지고있는 시스템을 구축하고 있습니다. 데이터베이스는 현재 약 2000 개의 행을 가지고 있으며 며칠 내에 또 다른 40,000 개의 행을 채울 프로그램을 작성했습니다. 데이터베이스가 지금 살고, 그리고 내가이 많은 정보 데이터베이스를 본 적이 있기 때문에, 나는 몇 가지에 대한 걱정 때문에 : 데이터베이스/테이블 크기와 관련된 MySQL의 효율성

  1. 이 모든 행이 심각 효율성을 저하시킬 것 추가하고 내 장고 애플 리케이션의? 다시 돌아가서 모든 데이터베이스 호출을 최적화해야만 더 똑똑하게 일을 진행할 수 있습니까? 아니면 이것으로 인해 데이터베이스가 전혀 느려지지 않을 정도로 데이터베이스가 느려지 는가?

  2. 내 40k 행을 비웃는다면, 내 다음 질문은 어떤 점에서 걱정해야합니까? 나는 또 다른 몇 십만을 곧 추가 할 것입니다, 그래서 저는 걱정합니다, 그리고 나는 무섭습니다.

  3. 이 모든 것에 대해 스핑크스는 어떻게 느껴지나요? 이 데이터를 모두 색인화해야한다는 것을 깨닫게되면 놀라지 않을까요? 아니면 괜찮을까요? 이게 정상인가요? 그렇다면, 스핑크스에 대한 데이터가 너무 많다는 것이 어느 시점에 염려해야합니까?

아무쪼록 고맙습니다.

답변

1

일반적인 쿼리의 경우 2000 행이 없습니다. 인덱스가 없어도 전체 테이블을 메모리에 캐시 할 수 있으므로 매우 빠릅니다. 적절한 인덱스가 없거나 사용 가능한 인덱스를 사용하지 않을 경우 100,000 행이 제대로 작동해야하지만 지금은 알 수 있습니다. 사용하지 않으면 몇 초가 걸릴 수 있습니다. 색인을 올바르게 작성하십시오. 그러나 문제를 해결하는 데 오랜 시간이 걸리지 않습니다. 느린 쿼리에서 EXPLAIN을 실행하고 느린 이유를 확인하고 필요한 인덱스를 파악하십시오.

수백만 행 또는 수천만 행이 될 때까지 데이터베이스 디자인 및 인덱싱 전략에 대해 신중하게 생각해야합니다. 일을 올바르게 수행하면 테이블에 수억 개의 행이있을 수 있습니다.

+0

그래서, 이것은 장고와 관련이 있기 때문에 db는 나를 위해 만들어졌습니다. django가 위의 색인 작성을 올바르게 수행합니까? – mlissner

+0

아니요, 직접 색인을 만들어야합니다. –

+0

차가움. 나는 이것을했고 내 조회 시간이 크게 향상되었습니다. – mlissner