ฉันไม่แน่ใจว่าที่ปรึกษาภายนอกจะสนับสนุน บริษัท ของคุณได้ดีขึ้นหรือไม่ถ้าคุณจะจัดการกับชุดข้อมูลขนาดใหญ่จริง ๆ และคุณต้องเริ่มต้นจากพื้นดิน โปรดอย่าเข้าใจฉันผิด แต่ถ้ามีคนทำโครงการกับลูกค้าจำนวนมากมันจะส่งผลกระทบต่อ บริษัท ของคุณ
เกี่ยวกับ 10M tuples ในหนึ่งตารางถ้าคุณมีการจัดทำดัชนีที่ดีมันจะดี เราจำเป็นต้องเก็บ tuples 100M หลาย ๆ ตัวในตารางเดียวที่นี่ (รายการที่ขาย) ซึ่งทำงานได้ดีบน oracle 11g ขนาดใหญ่
นี่คือการโพสต์จาก 2010 พร้อมแผนที่ของการออกแบบ db ของ facebook: ฐานข้อมูลของ Facebookการออกแบบฐานข้อมูล Facebook
คุณอาจต้องการอ่านเอกสาร mysql เกี่ยวกับประเภทพาร์ติชันเช่นนี้: เอกสารประกอบ MySQL: การแบ่งส่วน
MySQL รองรับประเภทเหล่านี้:
พิสัยแบ่งพาร์ติชันการแบ่งพาร์ติชันประเภทนี้จะกำหนดแถวให้กับพาร์ติชันตามค่าคอลัมน์ที่อยู่ภายในช่วงที่กำหนด ดูหัวข้อ 18.2.1“ การแบ่งพาร์ติชันช่วง”
รายการแบ่งพาร์ติชัน คล้ายกับการแบ่งพาร์ติชันโดย RANGE ยกเว้นว่ามีการเลือกพาร์ติชันตามคอลัมน์ที่ตรงกับหนึ่งในชุดของค่าที่ไม่ต่อเนื่อง ดูหัวข้อ 18.2.2“ การแบ่งพาร์ทิชันรายการ”
การแบ่งแฮช ด้วยการแบ่งพาร์ติชันประเภทนี้พาร์ติชั่นจะถูกเลือกตามค่าที่ส่งคืนโดยนิพจน์ที่ผู้ใช้กำหนดซึ่งทำงานกับค่าคอลัมน์ในแถวที่จะแทรกเข้าไปในตาราง ฟังก์ชั่นอาจประกอบด้วยการแสดงออกใด ๆ ที่ถูกต้องใน MySQL ที่ให้ค่าจำนวนเต็มลบ ส่วนขยายของประเภทนี้คือ LINEAR HASH ดูหัวข้อ 18.2.3“ การแบ่งพาร์ติชันแบบแฮช”
การแบ่งพาร์ติชันKEY การแบ่งพาร์ติชันประเภทนี้คล้ายกับการแบ่งพาร์ติชันโดย HASH ยกเว้นว่าจะมีการระบุคอลัมน์อย่างน้อยหนึ่งคอลัมน์เท่านั้นที่จะถูกประเมินและเซิร์ฟเวอร์ MySQL มีฟังก์ชันการแฮชของตนเอง คอลัมน์เหล่านี้สามารถมีค่าอื่นที่ไม่ใช่จำนวนเต็มเนื่องจากฟังก์ชันการแฮชที่จัดทำโดย MySQL รับประกันผลลัพธ์จำนวนเต็มโดยไม่คำนึงถึงชนิดข้อมูลคอลัมน์ ส่วนขยายสำหรับประเภทนี้คือ LINEAR KEY ดูหัวข้อ 18.2.4“ การแบ่งพาร์ติชันที่สำคัญ”
I can't believe they would have one global user table with 950 million entries.
ฉันสามารถไม่ว่าขนาดใหญ่ ฉันทำงานกับตารางที่ใหญ่กว่า มันค่อนข้างธรรมดา ตัวเลือกอื่นที่ฉันจะพิจารณาหากคุณมีข้อมูลอื่น ๆ มากมายเป็นฐานข้อมูลNoSQL