Google App Engine에서 폴리 모델과 일반 Bigtable 모델의 성능 영향은 무엇입니까?


12

일반적인 Google App Engine 사용, 폴리 모델 또는 일반적인 '빅 테이블'모델에서 최고의 성능을 발휘하는 것은 무엇입니까?

폴리 모델은 효과적으로 상속 추적을 제공하는 "클래스"라는 부모 테이블에 열을 생성합니다. 부모 클래스에서 상속 된 일반 Bigtable은 부모를 쿼리하고 하위 유형이 지정된 모든 클래스의 모든 자식을 찾을 수있는 기능없이 별도의 새 데이터 구조를 만듭니다.

답변:


3

아마도 성능 차이가 있을지 모르지만 아마도 꽤 작을 것입니다.

여기 내가 찾은 것이 있습니다 (모두 Google Docs for Python을 기반으로 함 ).

  1. BigTable은 기본적으로 PolyModel 정보를 지원하지 않습니다. 대신 'class'속성을 사용하여 구현됩니다. 따라서 기본 클래스를 찾는 등의 검색을 수행하려고하면이 '클래스'속성을 검색하게됩니다.

  2. PolyModel 클래스를 사용하는 모든 쿼리에는 주어진 클래스별로 필터링하는 추가 필터가 적용됩니다 ( 'class'속성 사용).

  3. PolyModel 클래스에 대해 작성된 모든 인덱스는 추가 '클래스'열을 고려해야합니다.

본질적으로 PolyModel 클래스는 'class'속성을 자체적으로 관리하여 쿼리에 삽입하고 다른 쿼리에 활용합니다. 그 외에는 표준 BigTable 사용법과 동일하게 작동합니다.

따라서 차이점은 실제로 하나의 추가 열을 추가하고 유지 관리하는 것입니다.

성능 차이가 있습니까? 예, 아마도 그렇습니다. 모든 데이터베이스 시스템에 추가하는 모든 열은 성능에 영향을 미칩니다. 그러나 중요한가요? 아마 아닙니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.