ในบริบทของฐานข้อมูลฉันเจอกับความสามารถในการขยายแนวนอนซึ่งเป็นหนึ่งในข้อดีของฐานข้อมูล NOSQL คำนี้หมายถึงอะไร
มันจะเปรียบเทียบกับการขยายในแนวตั้งได้อย่างไร
ในบริบทของฐานข้อมูลฉันเจอกับความสามารถในการขยายแนวนอนซึ่งเป็นหนึ่งในข้อดีของฐานข้อมูล NOSQL คำนี้หมายถึงอะไร
มันจะเปรียบเทียบกับการขยายในแนวตั้งได้อย่างไร
คำตอบ:
การขยายใน
แนวนอนเป็นการเพิ่มขนาดออกจากแนวนอน คุณไม่ต้องไปซื้อเซิร์ฟเวอร์ beefier ที่ใหญ่กว่าและย้ายภาระทั้งหมดของคุณลงไปแทนคุณซื้อเซิร์ฟเวอร์เพิ่มเติม 1+ ตัวและกระจายภาระของคุณไปยังเซิร์ฟเวอร์เหล่านั้น
การปรับสเกลแนวนอนจะใช้เมื่อคุณมีความสามารถในการรันหลายอินสแตนซ์บนเซิร์ฟเวอร์พร้อมกัน โดยทั่วไปแล้วมันจะยากกว่ามากในการเปลี่ยนจากเซิร์ฟเวอร์ 1 เซิร์ฟเวอร์เป็นเซิร์ฟเวอร์ 2 เซิร์ฟเวอร์จากนั้นเป็นเซิร์ฟเวอร์ 2 ถึง 5, 10, 50 และอื่น ๆ
เมื่อคุณได้แก้ไขปัญหาของการใช้งานอินสแตนซ์แบบขนานคุณสามารถใช้ประโยชน์จากสภาพแวดล้อมเช่น Amazon EC2, Cloud Service ของ Rackspace, GoGrid, ฯลฯ เนื่องจากคุณสามารถนำอินสแตนซ์ขึ้นและลงตามความต้องการลดความต้องการจ่ายพลังงานเซิร์ฟเวอร์ คุณไม่ได้ใช้เพียงเพื่อให้ครอบคลุมการโหลดสูงสุดเหล่านั้น
ฐานข้อมูลเชิงสัมพันธ์เป็นหนึ่งในรายการที่ยากต่อการรันอ่าน / เขียนแบบเต็มในแบบคู่ขนาน
ฉันเห็น Damien Katz พูดถึง CouchDB ที่ StackOverflow DevDays ใน Austin และหนึ่งในเป้าหมายหลักของเขาสำหรับการสร้างคืออินสแตนซ์คู่ขนานเหล่านี้ เนื่องจากนี่เป็นจุดสนใจของมันตั้งแต่วันแรกมันจะมีความสามารถในการใช้ประโยชน์จากการปรับสเกลแนวนอนได้มากกว่า
การขยายใน
แนวตั้งคือการสร้างขึ้นแทนที่จะเป็นออก ไปซื้อฮาร์ดแวร์ที่แข็งแกร่งที่สุดที่คุณสามารถจ่ายได้และนำแอปพลิเคชั่นฐานข้อมูลและอื่น ๆ
โลกแห่งความจริง
แน่นอนทั้งสองนี้มีข้อดีและข้อเสีย บ่อยครั้งที่การรวมกันของทั้งสองนี้ใช้สำหรับการแก้ปัญหาขั้นสุดท้าย
คุณอาจมีฐานข้อมูลหลักที่ทุกคนเขียนและอ่านข้อมูลเรียลไทม์บนฮาร์ดแวร์ชิ้นใหญ่ จากนั้นได้แจกจ่ายสำเนาของฐานข้อมูลแบบอ่านอย่างเดียวสำหรับการวิเคราะห์ข้อมูลและการรายงานที่หนักกว่า จากนั้นเว็บแอปพลิเคชั่นส่วนหน้าอาจทำงานบนเว็บเซิร์ฟเวอร์หลายเครื่องด้านหลังตัวโหลดบาลานเซอร์
การปรับสเกลแนวนอนนั้นยอดเยี่ยมเมื่อคุณต้องการแอปพลิเคชั่นที่ต้องจัดการกับการเขียนจำนวนมากและการอ่านแบบขนาน นึกถึงเว็บไซต์ที่ได้รับปริมาณการใช้งานจำนวนมากและต้องการบันทึกสิ่งนี้หรือต้องการบันทึกกิจกรรมจำนวนมาก
ฉันเดาว่าข้อดีที่สุดคือการปรับขนาดแนวนอนสามารถทำได้โดยใช้ฮาร์ดแวร์ชุดสินค้าและมีเพียงคุณเท่านั้นที่สามารถปรับขนาดแนวตั้งได้และพยายามทำให้กล่องที่มีอยู่ของคุณใหญ่ขึ้น
RDBMS แบบดั้งเดิมล้มเหลวที่นี่ด้วยเหตุผลหลายประการ (รวมถึงความจริงที่ว่าพวกเขาเป็นกรด) และโซลูชั่น NoSQL ทำได้ที่นี่เพราะพวกเขาสามารถปรับขนาดแนวนอนได้อย่างง่ายดาย - แต่นั่นเป็นอีกเรื่อง (RDBMS / SQL กับ NoSQL)
บางคนในอุตสาหกรรมใช้คำศัพท์ต่างกันในความหมายเดียวกัน: