ไม่มีคำตอบที่ง่ายสำหรับคำถามของคุณ แต่นี่คือบางสิ่งที่ควรพิจารณา
อันดับแรกสเกลไม่ใช่สิ่งเดียวที่ต้องกังวล สิ่งที่คุณทำกับข้อมูลของคุณคือ หากคุณมีข้อมูล 500 ตาราง 30 TB และคุณกำลังทำ OLTP อย่างง่ายด้วยการรายงานน้อยมากฉันไม่คิดว่าคุณจะมีปัญหามากเกินไป PostgreSQL มีฐานข้อมูล 32TB อยู่ที่นั่น อย่างไรก็ตามในขณะเดียวกันประสิทธิภาพจะลดลงบ้างเพราะต้องกดดิสก์ทุกอย่าง ในทำนองเดียวกันถ้าคุณมี 50TB ถ้าข้อมูล แต่มีชุด Hit ทั่วไปประมาณ 100GB จากนั้นคุณสามารถสร้างเซิร์ฟเวอร์ที่มี RAM เพียงพอที่จะเก็บส่วนหนึ่งของฐานข้อมูลนั้นไว้ในหน่วยความจำและคุณเป็นสีทอง
ในทางกลับกันหากคุณพยายามที่จะใช้โหมด (ค่าทั่วไปส่วนใหญ่) จากข้อมูล 1TB มันไม่สำคัญว่าคุณใช้ระบบใดสิ่งนี้จะเจ็บปวดกับหรือไม่มีเศษ (แก้ไข: อันที่จริงการแบ่งส่วนอาจทำให้ปัญหานี้แย่ลง )
ปัญหาสำคัญที่คุณจะพบกับฐานข้อมูลขนาดใหญ่ใน MySQL และ PostgreSQL นั้นเกี่ยวข้องกับข้อเท็จจริงที่ว่า กล่าวอีกนัยหนึ่งแบบสอบถามถูกเรียกใช้เป็นบล็อกเดียวโดยเธรดเดียวและไม่สามารถแยกย่อยเป็นชิ้น ๆ และเรียกใช้แยกกัน ปัญหานี้มักเกิดขึ้นเมื่อรันคิวรีการวิเคราะห์ขนาดใหญ่กับข้อมูลจำนวนมาก นี่คือที่ที่ Postgres-XC และ Green Plum มาช่วยเหลือเนื่องจากแยกที่เก็บข้อมูลออกจากการดำเนินการและสามารถทำได้ในระดับผู้ประสานงาน โปรดทราบว่า Postgres-XC และ Green Plum ใช้เป็นหลักในการแบ่งส่วนภายใน แต่ผู้ประสานงานบังคับใช้ความสอดคล้องทั้งหมดทั่วโลก
คุณสามารถแยกแบบสอบถามออกได้ด้วยชุดประมวลผลคู่ขนานมีตัวประมวลผล / ช่อง I / O ดิสก์ที่แตกต่างกันเรียกใช้บางส่วนและรายงานส่วนหลังของชุดผลลัพธ์ที่จะรวบรวมและส่งกลับไปยังแอปพลิเคชัน อีกครั้งสิ่งนี้มักจะมีประโยชน์มากที่สุดในการวิเคราะห์มากกว่าการประมวลผลโหลดธุรกรรม
สิ่งที่สองคือบางระบบเช่น Vertica หรือ Greenplum เก็บคอลัมน์ของข้อมูลไว้ด้วยกัน สิ่งนี้ทำให้ระบบใช้งานได้ยากขึ้นจากมุมมอง OLTP และลดประสิทธิภาพที่นั่น แต่จะเพิ่มประสิทธิภาพอย่างมากสำหรับปริมาณงานวิเคราะห์ขนาดใหญ่ ดังนั้นนี่เป็นการแลกเปลี่ยนภาระงานเฉพาะ
ดังนั้นคำตอบคือเมื่อคุณมีขนาดเกิน 1-2 TB คุณอาจพบว่าตัวเองต้องเผชิญกับการแลกเปลี่ยนระหว่างระบบและปริมาณงานจำนวนมาก อีกครั้งนี่เป็นข้อมูลเฉพาะสำหรับฐานข้อมูลขนาดของชุดการทำงาน ฯลฯ อย่างไรก็ตาม ณ จุดนี้คุณต้องไปกับระบบเกล็ดหิมะจริงๆนั่นคือระบบที่มีเอกลักษณ์และปรับให้เข้ากับปริมาณงานของคุณ
แน่นอนว่านี่หมายความว่าข้อ จำกัด นั้นไม่สามารถวัดได้โดยทั่วไป
แก้ไข : ตอนนี้ฉันทำงานกับฐานข้อมูล 9TB ซึ่งจัดการการผสมผสานการตัดสินใจสนับสนุนและการประมวลผลปริมาณงานใน PostgreSQL ความท้าทายที่ใหญ่ที่สุดเพียงอย่างเดียวคือถ้าคุณมีคำถามที่มีจำนวนมากของชุดข้อมูลคุณจะต้องรอสักครู่เพื่อหาคำตอบ
อย่างไรก็ตามด้วยความเอาใจใส่อย่างละเอียดถี่ถ้วน (รวมถึงดัชนี, autovacuum, วิธีการทำงานเหล่านี้ในระดับต่ำ, ฯลฯ ) และทรัพยากรการคำนวณที่เพียงพอ, สิ่งเหล่านี้สามารถจัดการได้ทั้งหมด (และฉันประเมินว่าสามารถจัดการได้ดีในช่วง 30TB ใน Pg)
แก้ไข 2 : เมื่อคุณมุ่งหน้าไปที่ 100TB แม้ว่าการทำงานจะขึ้นอยู่กับชุดข้อมูลของคุณ ฉันกำลังทำงานอยู่ตอนนี้ที่จะไม่ขยายไปในช่วงนี้เพราะมันจะถึงขีด จำกัด 32TB ต่อตารางใน PostgreSQL ก่อน