จาก IBM developerWorks: จัดหาความสามารถในการขยายข้อมูลระดับคลาวด์ด้วยฐานข้อมูล NoSQL
Scalabilityเป็นระบบที่สามารถรองรับฐานข้อมูลขนาดใหญ่มากที่มีอัตราการร้องขอสูงมากในเวลาแฝงที่ต่ำมาก
ระบบ NoSQL มีคุณสมบัติการออกแบบที่เหมือนกัน:
- ความสามารถในการขยายปริมาณงานผ่านเซิร์ฟเวอร์ในแนวนอน
- อินเตอร์เฟสหรือโปรโตคอลระดับการโทรอย่างง่าย (ตรงกันข้ามกับการโยง SQL)
- สนับสนุนโมเดลความสอดคล้องที่อ่อนแอกว่าธุรกรรม ACID ใน RDBMS แบบดั้งเดิมส่วนใหญ่
- การใช้ดัชนีแบบกระจายและแรมอย่างมีประสิทธิภาพสำหรับการจัดเก็บข้อมูล
- ความสามารถในการกำหนดคุณสมบัติใหม่หรือสคีมาข้อมูล
เหตุใดฐานข้อมูลเชิงสัมพันธ์อาจไม่เหมาะสำหรับการปรับขนาด
โดยทั่วไประบบการจัดการฐานข้อมูลเชิงสัมพันธ์ได้รับการพิจารณาว่าเป็น "โซลูชันขนาดเดียวเหมาะกับทุกคนสำหรับการคงอยู่ของข้อมูลและการดึงข้อมูล" มานานหลายทศวรรษ พวกเขาครบกำหนดหลังจากการวิจัยและพัฒนาอย่างกว้างขวางและประสบความสำเร็จอย่างมากในการสร้างตลาดขนาดใหญ่และโซลูชั่นในขอบเขตธุรกิจที่แตกต่างกัน
ความต้องการที่เพิ่มขึ้นอย่างต่อเนื่องของความสามารถในการปรับขนาดและความต้องการของแอปพลิเคชันใหม่ได้สร้างความท้าทายใหม่สำหรับ RDBMS แบบดั้งเดิมรวมถึงความไม่พอใจในแนวทางเดียวที่เหมาะกับทุกขนาดในบางแอปพลิเคชันระดับเว็บ คำตอบนี้เป็นซอฟต์แวร์ฐานข้อมูลประสิทธิภาพสูงรุ่นใหม่ที่ออกแบบมาเพื่อท้าทายระบบการจัดการฐานข้อมูลเชิงสัมพันธ์ เหตุผลใหญ่สำหรับการเคลื่อนไหว NoSQL ก็คือการใช้งานที่แตกต่างกันของเว็บองค์กรและแอพพลิเคชั่นการคำนวณแบบคลาวด์มีความต้องการที่แตกต่างกันของฐานข้อมูลของพวกเขา - ไม่ใช่ทุกแอปพลิเคชันที่ต้องการความสอดคล้องของข้อมูลที่เข้มงวด
อีกตัวอย่าง: สำหรับเว็บไซต์ที่มีปริมาณมากเช่น eBay, Amazon, Twitter หรือ Facebook ความสามารถในการปรับขนาดและความพร้อมใช้งานสูงนั้นเป็นข้อกำหนดที่สำคัญซึ่งไม่สามารถทำลายได้ สำหรับแอพพลิเคชั่นเหล่านี้แม้ไฟดับเพียงเล็กน้อยอาจมีผลกระทบทางการเงินที่สำคัญและส่งผลกระทบต่อความไว้วางใจของลูกค้า
มากกว่าใน DBA.SE: การปรับสเกลในแนวนอนหมายถึงอะไร
การขยายในแนวนอนเป็นสิ่งที่จำเป็นแทนที่จะสร้างขึ้นมา คุณไม่ต้องไปซื้อเซิร์ฟเวอร์ beefier ที่ใหญ่กว่าและย้ายภาระทั้งหมดของคุณลงไปแทนคุณซื้อเซิร์ฟเวอร์เพิ่มเติม 1+ ตัวและกระจายภาระของคุณไปยังเซิร์ฟเวอร์เหล่านั้น
การปรับสเกลแนวนอนจะใช้เมื่อคุณมีความสามารถในการเรียกใช้หลายอินสแตนซ์บนเซิร์ฟเวอร์พร้อมกัน โดยทั่วไปแล้วมันจะยากกว่ามากในการเปลี่ยนจากเซิร์ฟเวอร์ 1 เซิร์ฟเวอร์เป็นเซิร์ฟเวอร์ 2 เซิร์ฟเวอร์จากนั้นเป็นเซิร์ฟเวอร์ 2 ถึง 5, 10, 50 และอื่น ๆ
เมื่อคุณได้แก้ไขปัญหาของการเรียกใช้อินสแตนซ์แบบขนานคุณสามารถใช้ประโยชน์จากสภาพแวดล้อมเช่น Amazon EC2, Cloud Service ของ Rackspace, GoGrid, ฯลฯ เนื่องจากคุณสามารถนำอินสแตนซ์ขึ้นและลงตามความต้องการลดความต้องการจ่ายพลังงานเซิร์ฟเวอร์ คุณไม่ได้ใช้เพียงเพื่อให้ครอบคลุมการโหลดสูงสุดเหล่านั้น
ฐานข้อมูลเชิงสัมพันธ์เป็นหนึ่งในรายการที่ยากต่อการรันอ่าน / เขียนแบบเต็มในแบบคู่ขนาน