ประสิทธิภาพของ polymodels เมื่อเทียบกับรุ่น Bigtable ปกติใน Google App Engine คืออะไร


12

อะไรที่ให้ประสิทธิภาพที่ดีที่สุดในการใช้งาน Google App Engine ปกติ polymodel หรือรุ่น "Bigtable" ปกติ?

polymodel สร้างคอลัมน์ในตารางพาเรนต์ที่เรียกว่า "class" ซึ่งให้การติดตามการสืบทอดได้อย่างมีประสิทธิภาพ ในขณะที่ Bigtable ปกติสืบทอดมาจากคลาสพาเรนต์สร้างโครงสร้างข้อมูลใหม่และแยกจากกันโดยไม่มีความสามารถในการสืบค้นพาเรนต์และค้นหาลูกทั้งหมดของคลาสย่อยทั้งหมด

คำตอบ:


3

อาจมีความแตกต่างด้านประสิทธิภาพ แต่อาจมีขนาดเล็ก

นี่คือสิ่งที่ฉันพบ (ทั้งหมดนี้ใช้Google Docs for Python )

  1. BigTable ไม่รองรับข้อมูล PolyModel แต่จะใช้งานโดยใช้คุณสมบัติ 'คลาส' แทน ดังนั้นเมื่อคุณพยายามทำการค้นหาตัวอย่างเช่นเพื่อค้นหาคลาสพื้นฐานคุณจะค้นหาคุณสมบัติ 'คลาส' นี้

  2. แบบสอบถามทั้งหมดที่ใช้คลาส PolyModel มีตัวกรองพิเศษที่นำไปใช้ซึ่งกรองตามคลาสที่กำหนด (โดยใช้คุณสมบัติ 'คลาส')

  3. ดัชนีใด ๆ ที่สร้างขึ้นสำหรับคลาส PolyModel ต้องคำนึงถึงคอลัมน์ 'คลาส' เพิ่มเติม

โดยพื้นฐานแล้วคลาส PolyModel จะดูแลคุณสมบัติ 'class' ด้วยตัวเองโดยแทรกลงในคิวรีและใช้สำหรับคิวรีอื่น นอกเหนือจากนั้นมันทำงานเหมือนกับการใช้ BigTable มาตรฐาน

ดังนั้นความแตกต่างเป็นเพียงการเพิ่มและรักษาคอลัมน์พิเศษหนึ่งคอลัมน์

มีความแตกต่างด้านประสิทธิภาพหรือไม่ ใช่อาจเป็นเช่นนั้น ทุกคอลัมน์ที่คุณเพิ่มไปยังระบบฐานข้อมูลใด ๆ จะมีผลกระทบต่อประสิทธิภาพ แต่มันสำคัญหรือไม่ อาจจะไม่.

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.