ฐานข้อมูล Sql และ Nosql ปรับขนาดอย่างไร
เผยแพร่แล้ว: 2022-11-18ด้วยความนิยมที่เพิ่มขึ้นอย่างต่อเนื่องของเว็บแอปพลิเคชันและปริมาณข้อมูลที่สร้างขึ้น ความต้องการฐานข้อมูลที่สามารถปรับขนาดได้อย่างรวดเร็วและมีประสิทธิภาพจึงมีความสำคัญมากกว่าที่เคย ฐานข้อมูล SQL และ NoSQL เป็นสองตัวเลือกยอดนิยมสำหรับนักพัฒนาที่กำลังมองหาโซลูชันฐานข้อมูลที่ปรับขนาดได้ ฐานข้อมูล SQL มีมานานหลายทศวรรษแล้วและเป็นตัวเลือกดั้งเดิมสำหรับแอปพลิเคชันจำนวนมาก พวกเขาใช้สคีมาแบบตายตัว ซึ่งหมายความว่าโครงสร้างของฐานข้อมูลถูกกำหนดล่วงหน้าและข้อมูลทั้งหมดต้องเป็นไปตามสคีมานั้น สิ่งนี้ทำให้ฐานข้อมูล SQL ทำงานได้ยากขึ้นเมื่อชุดข้อมูลมีขนาดใหญ่และซับซ้อน ในทางกลับกัน ฐานข้อมูล NoSQL นั้นค่อนข้างใหม่และออกแบบมาเพื่อทำงานกับชุดข้อมูลขนาดใหญ่และซับซ้อน พวกเขามีสคีมาที่ยืดหยุ่น ซึ่งหมายความว่าโครงสร้างของฐานข้อมูลสามารถเปลี่ยนแปลงได้ตามต้องการ สิ่งนี้ทำให้ฐานข้อมูล NoSQL ทำงานได้ง่ายขึ้น แต่ก็หมายความว่าอาจไม่น่าเชื่อถือเท่าฐานข้อมูล SQL ทั้งฐานข้อมูล SQL และ NoSQL มีข้อดีและข้อเสียในด้านความสามารถในการปรับขนาด ฐานข้อมูล SQL นั้นใช้งานยากกว่า แต่มีความน่าเชื่อถือมากกว่า ฐานข้อมูล NoSQL ใช้งานได้ง่ายกว่า แต่อาจไม่น่าเชื่อถือเท่า
สามารถใช้เทคนิคและหลักการปรับขนาดต่างๆ กับฐานข้อมูลได้ ขึ้นอยู่กับประเภทของฐานข้อมูล การปรับขนาดมีความสำคัญต่อทั้งฐานข้อมูล NoSQL และที่ไม่ใช่ NoSQL และแนวคิดของการแบ่งกลุ่ม ฐานข้อมูล เป็นองค์ประกอบที่สำคัญ เมื่อมีการกระจายเซิร์ฟเวอร์ เราได้รับประโยชน์จากการสามารถจัดเก็บข้อมูลได้มากขึ้นในขณะเดียวกันก็รับปัญหาของระบบแบบกระจายไปด้วย วิศวกรจะต้องเขียนตรรกะด้วยตนเองเพื่อจัดการกับการแบ่งส่วนอัตโนมัติในฐานข้อมูลเมนเฟรม เนื่องจากไม่รองรับ สำหรับวิธีแก้ปัญหา ให้วางพร็อกซี เช่น ตัวโหลดบาลานเซอร์ ไว้หน้าบริการคิวรีและฐานข้อมูล พร็อกซีสามารถรีสตาร์ทได้หากชาร์ดมีขนาดใหญ่เกินไป ซึ่งจะทำให้การสืบค้นดำเนินการได้รวดเร็วยิ่งขึ้น สันนิษฐานกันอย่างกว้างขวางว่าการปรับขนาดฐานข้อมูล NoSQL เป็นกระบวนการอัตโนมัติขั้นสูงที่ผู้ใช้ปลายทางมองเห็นเท่านั้น
สถาปัตยกรรมมาสเตอร์-สเลฟอิงจากธุรกรรมแบบ one-shot ในขณะที่สถาปัตยกรรมแบบชาร์ดอิงตามธุรกรรมแบบสุ่ม การอ่านคำค้นหาที่ส่งตรงไปยังเศษชิ้นส่วนรองจะลดภาระของชิ้นส่วนหลัก เราสามารถทำซ้ำฐานข้อมูลในระดับศูนย์ข้อมูลเพื่อให้แน่ใจว่าเรามีข้อมูลสำรอง โหนดสามารถสื่อสารระหว่างกันได้ด้วยการแลกเปลี่ยนข้อมูล เป็นเรื่องปกติที่โหนดจะสื่อสารกับโหนดอื่นในจำนวนที่กำหนดไว้ล่วงหน้า โหนดใน Cassandra สามารถทำซ้ำข้อมูลในโหนดอื่น ๆ ได้เนื่องจากโหนดนั้นถือว่าเท่ากัน โปรโตคอลการซุบซิบเป็นส่วนย่อยของแนวคิดทั้งหมดของโหนด
คุณอาจละทิ้งคุณสมบัติบางอย่างในฐานข้อมูลแบบกระจายเพื่อรับคุณสมบัติเพิ่มเติม การทำสำเนาข้อมูลซ้ำเป็นสิ่งสำคัญเกือบทุกครั้งเพื่อรักษาความพร้อมใช้งาน คุณจะมีความแตกต่างกันเล็กน้อยในความสอดคล้องของฐานข้อมูลของคุณในตอนแรก แต่จะดีขึ้นเมื่อเวลาผ่านไป ฐานข้อมูล SQL ใช้สำหรับข้อมูลที่มีความแม่นยำสูงในระบบการเงิน ในขณะที่ฐานข้อมูล NoSQL ใช้สำหรับข้อมูลที่สำคัญน้อยกว่า เช่น จำนวนการดู
วิธีการปรับขนาดฐานข้อมูลสองวิธีคือการปรับขนาดในแนวตั้งและเพิ่ม CPU หรือ RAM ของเครื่องฐานข้อมูลที่คุณมีอยู่ เพิ่มเครื่องใน คลัสเตอร์ฐานข้อมูล ของคุณเพื่อจัดการส่วนย่อยของข้อมูลทั้งหมดเพื่อปรับขนาดในแนวนอน
ยุคอินเทอร์เน็ตและคลาวด์คอมพิวติ้งทำให้สามารถสร้างฐานข้อมูล NoSQL ซึ่งทำให้ง่ายต่อการติดตั้งสถาปัตยกรรมแบบขยายขนาด สถาปัตยกรรมแบบสเกลเอาต์หมายถึงการกระจายการจัดเก็บข้อมูลและงานที่จำเป็นในการประมวลผลบนคอมพิวเตอร์จำนวนมาก
ความสามารถในการจัดการข้อมูลจำนวนมากก็เป็นข้อได้เปรียบเช่นกัน ฐานข้อมูล SQL สามารถปรับขนาดในแนวตั้งได้ ทำให้คุณสามารถโหลดเซิร์ฟเวอร์ขนาดใหญ่ขึ้นด้วยพลังงาน CPU, RAM และ SSD ที่มากขึ้น
ฐานข้อมูล Nosql ปรับขนาดได้อย่างไร

เนื่องจากฐานข้อมูล SQL สามารถปรับขยายได้ในแนวตั้ง คุณจึงสามารถเพิ่มโหลดบนเซิร์ฟเวอร์เครื่องเดียวได้โดยเพิ่ม RAM, SSD หรือ CPU ในฐานข้อมูล SQL ในทางกลับกัน ฐานข้อมูล NoSQL สามารถปรับขนาดได้ในแนวนอน ซึ่งหมายความว่าสามารถจัดการกับการรับส่งข้อมูลที่เพิ่มขึ้นได้ง่ายขึ้นโดยการเพิ่มเซิร์ฟเวอร์มากขึ้น
Rahim Yaseen จาก Couchbase จะพาเราผ่านจุดวิกฤติต่างๆ ข้อมูลจำนวนมากหลั่งไหลเข้ามาในองค์กร และพวกเขากำลังมองหาวิธีจัดการ จัดเก็บ และใช้ประโยชน์จากข้อมูลดังกล่าว การตัดสินใจที่สำคัญใน การจัดการฐานข้อมูล คือว่าจะปรับขนาดออกหรือขยายขนาด การแบ่งย่อยด้วยตนเอง ซึ่งการลงทะเบียนแต่ละครั้งถูกกำหนดให้กับบูธที่แตกต่างกัน ทำให้สามารถกระจายการลงทะเบียนไปยังบูธเช็คอินจำนวนมากได้ เนื่องจากมีโครงร่างที่กำหนดไว้อย่างดีและกำหนดไว้ล่วงหน้า จึงใช้งานได้ หากคุณมีการโทรออกอัตโนมัติ คุณจะต้องไปที่บูธแต่ละแห่งและมองหาบุคคลที่มีนามสกุล S ฐานข้อมูลเอกสารมีรูปแบบการเข้าถึงคีย์โดยตรงจำนวนหนึ่งซึ่งจำเป็นต้องเข้าถึงข้อมูลโดยตรงผ่านคีย์เดียวและนำทางไปยังเอกสารอื่นผ่าน คีย์ที่เกี่ยวข้อง การทำดัชนีรองและการสืบค้นเป็นความท้าทายหลักสองประการเมื่อต้องจัดการกับข้อมูลแบบกระจาย
เนื่องจากแต่ละโหนดต้องเข้าร่วมในการดำเนินการคิวรีเพื่อรันคิวรี จึงไม่จำเป็นต้องใช้เทคนิคลดขนาดแผนที่ เมื่อปริมาณข้อมูลเพิ่มขึ้น การปรับขนาดสไตล์ RDBMS ก็จะใช้งานได้จริงน้อยลงเรื่อยๆ ความล้มเหลวของสถาปัตยกรรมการเพิ่มขนาดที่อยู่ภายใต้ชุดข้อมูลขนาดใหญ่นั้นเกือบจะแน่นอนว่าจะส่งผลให้เกิดจุดล้มเหลวขนาดใหญ่เพียงจุดเดียว ในฐานะตัวอย่างคลาสสิกของคลัสเตอร์ขนาดใหญ่ที่ไม่มีการแชร์ อินเทอร์เน็ตเป็นหนึ่งเดียว
ฐานข้อมูล NoSQL สามารถปรับขนาดตามแนวนอนเพื่อตอบสนองความต้องการของผู้ใช้ที่หลากหลาย สามารถใช้กับเครื่องใดก็ได้โดยไม่ต้องใช้ฮาร์ดแวร์พิเศษ ด้วยเหตุนี้ NoSQL จึงเป็นตัวเลือกที่ยอดเยี่ยมสำหรับระบบที่ต้องการความสามารถในการปรับขนาดอย่างรวดเร็วหรือไม่มีความรู้มากนัก
ฐานข้อมูล SQL ปรับสเกลอย่างไร

สเกลคือตัวเลขที่มีค่าทางด้านขวาของจุดทศนิยม ตัวอย่างเช่น ตัวเลขนี้มีความแม่นยำเป็น 5 และมาตราส่วนเป็น 2 ใน SQL Server ชนิดข้อมูลตัวเลขและทศนิยมจะมีความแม่นยำสูงสุดที่ 38 บิต ค่าสูงสุดของ SQL Server เริ่มต้นในเวอร์ชันก่อนหน้านี้คือ 28
ในบทความนี้ ฉันจะให้แนวคิดพื้นฐานและตัวชี้เกี่ยวกับการปรับขนาด ฐานข้อมูลเชิงสัมพันธ์ แบบดั้งเดิม เป็นที่ยอมรับกันอย่างกว้างขวางว่าการปรับขนาดควรทำในแนวตั้ง (บนเซิร์ฟเวอร์ฐานข้อมูลเดียว) โดยใช้ฮาร์ดแวร์ที่ดีกว่า สิ่งสำคัญคือต้องสร้างสมดุลระหว่างประสิทธิภาพและการทำงานเมื่อเลือกประเภทข้อมูล การทำให้ข้อมูลเป็นมาตรฐานและดีทำให้เป็นปกติเป็นสองวิธีพื้นฐานในการคิดเกี่ยวกับประเภทข้อมูลที่เหมาะสมที่สุด เมื่อวิเคราะห์ข้อมูลจำนวนมาก การประมวลผลข้อมูลล่วงหน้าจะเป็นประโยชน์ เมื่อใช้ดัชนีที่เหมาะสมในตาราง ประสิทธิภาพสามารถปรับปรุงได้อย่างมาก เราต้องรู้อย่างแน่ชัดว่าเครื่องมือวางแผนคิวรีของเราจัดการคิวรีของเราอย่างไร เพื่อให้มั่นใจว่าทำงานได้อย่างถูกต้อง
เมื่อเราดูที่โครงสร้างของข้อมูล เราสามารถตัดสินใจได้ว่าจะเพิ่มดัชนีหรือเขียนแบบสอบถามของเราใหม่ ระดับการแยกพื้นฐานสี่ระดับที่กำหนดไว้ในมาตรฐาน SQL:1992 จะส่งผลกระทบอย่างมากต่อวิธีที่เราใช้ ระบบฐานข้อมูล ของเรา ก่อนตัดสินใจว่าการบีบอัดในชั้นแอปพลิเคชันจะให้ประโยชน์ตามที่ต้องการหรือไม่ คุณควรตรวจสอบวิธีการจัดเก็บข้อมูลก่อนและดูว่าจำเป็นต้องมีการบีบอัดหรือไม่ เนื่องจากการแทรกคอลัมน์ที่ตำแหน่งใดตำแหน่งหนึ่งใช้เวลานาน การแทรกคอลัมน์ใหม่ที่ส่วนท้ายของตารางจึงเป็นทางเลือกที่ดีกว่า ฮูดของฐานข้อมูลอาจรกไปด้วยข้อมูลที่บีบอัดแล้ว เราสามารถปรับขนาดในแนวนอนสำหรับการดำเนินการเขียนโดยการเพิ่มเซิร์ฟเวอร์มากขึ้น แต่เรายังสามารถใช้แบบจำลองแบบอ่านอย่างเดียวเพื่อขยายขีดความสามารถของเรา การแบ่งพาร์ติชันบนสเตอรอยด์ช่วยให้เราสามารถจัดเก็บส่วนต่างๆ ของตารางฐานข้อมูล (ชาร์ด) บนเซิร์ฟเวอร์ต่างๆ
Sharding คือกระบวนการจัดเก็บข้อมูลในฐานข้อมูล ส่วนขยายฐานข้อมูลอื่น เช่น TimescaleDb หรือ PostGIS สามารถใช้เพื่อปรับปรุงการประมวลผลข้อมูลและประสิทธิภาพการจัดเก็บ เป็นไปได้ที่จะถ่ายโอนข้อมูลจากระบบหนึ่งไปยังอีกระบบหนึ่งและประมวลผลที่นั่น เรายังสามารถส่งไปยังฐานข้อมูลการวิเคราะห์ เช่น Hadoop หรือ Clickhouse การแจกจ่าย Apache Spark เป็นซอฟต์แวร์คอมพิวเตอร์คลัสเตอร์แบบกระจายแบบโอเพ่นซอร์สและฟรีที่สามารถใช้สำหรับการคำนวณข้อมูลขนาดใหญ่ วิธีอื่นๆ ในการย้ายข้อมูล ได้แก่ การคัดลอกฐานข้อมูล การแยกข้อมูลโดยใช้ SQL และอื่นๆ หากคุณเลือกผู้ให้บริการระบบคลาวด์ เช่น AWS หรือ Azure คุณควรทราบว่าผู้ให้บริการเหล่านี้ไม่รองรับฐานข้อมูล SQL ที่มีการจัดการ
ข้อจำกัดนี้จะขยายใหญ่ขึ้นเมื่อต้องจัดการกับชุดข้อมูลขนาดใหญ่ที่กระจายไปตามโหนดต่างๆ ชุดข้อมูลเหล่านี้แบ่งออกเป็นกลุ่มย่อยที่สามารถจัดการได้โดย MySQL Cluster และกระจายไปยังโหนดแบบขนาน หากฐานข้อมูลมีสแน็ปช็อตเมื่อใดก็ไม่จำเป็นต้องรอคิวรีเพื่อส่งคืนผลลัพธ์ ด้วยเหตุนี้ คุณจึงสามารถใช้ข้อได้เปรียบด้านความสามารถในการปรับขนาดนี้เพื่อวิเคราะห์ชุดข้อมูลขนาดใหญ่แบบเรียลไทม์ หรือประมวลผลข้อมูลเป็นกลุ่มได้ MySQL Cluster เป็นตัวเลือกที่ยอดเยี่ยมสำหรับเวิร์กโหลดที่ต้องการการดำเนินการที่เรียบง่ายเนื่องจากใช้งานง่าย ช่วยให้คุณประหยัดเงินและเวลาในขณะที่ยังคงรักษาคุณสมบัติเดียวกันกับฐานข้อมูลเชิงสัมพันธ์แบบดั้งเดิม MySQL Cluster เป็นตัวเลือกที่ยอดเยี่ยมสำหรับธุรกิจที่ต้องการปรับขนาดฐานข้อมูลในแนวนอนโดยไม่สูญเสียประสิทธิภาพ แทนที่จะใช้ระบบฐานข้อมูลเชิงสัมพันธ์แบบดั้งเดิม ธุรกิจสามารถประหยัดเงินและเวลาได้โดยใช้ MySQL Cluster

สหรัฐอเมริกาเป็นประเทศที่ก่อตั้งขึ้นบนแนวคิดเรื่องเสรีภาพ ดินแดนแห่งเสรี
Nosql หรือ Sql สามารถปรับขนาดได้มากขึ้นหรือไม่?

ในกรณีส่วนใหญ่ ฐานข้อมูล SQL สามารถปรับขนาดได้ในแนวตั้ง เซิร์ฟเวอร์เดียวสามารถอัพเกรดได้ด้วยความจุของ CPU, RAM หรือ SSD เพื่อรองรับทราฟฟิกที่มากขึ้น ฐานข้อมูล NoSQL สามารถปรับขนาดตามแนวนอนได้ ด้วยการแบ่งส่วน คุณสามารถเพิ่มจำนวนเซิร์ฟเวอร์ในฐานข้อมูล NoSQL ของคุณ ทำให้คุณจัดการกับทราฟฟิกได้มากขึ้น
แอปพลิเคชันต้องการความสามารถในการปรับขยายได้มากขึ้นเนื่องจากมีความซับซ้อนมากขึ้น ควรพิจารณาที่เก็บข้อมูลที่สามารถปรับขนาดได้อย่างมีประสิทธิภาพและง่ายดาย ความแตกต่างหลักระหว่างทั้งสองคือว่าฐานข้อมูลควรเป็น 'ASL' หรือ 'NoSQL' ฐานข้อมูล SQL มีมานานแล้ว ในขณะที่ฐานข้อมูล NoSQL เป็นที่รู้จักกันดีในเรื่องความสามารถในการปรับขนาดได้ง่าย ทุกการดำเนินการในฐานข้อมูล NoSQL จำเป็นต้องใช้การแบ่งส่วนข้อมูล การดำเนินการข้อมูลแต่ละครั้งต้องมีวิธีการที่มีคุณสมบัติเหมาะสม ซึ่งระบุโหนดที่มีข้อมูลอยู่ ข้อมูลถูกจัดเก็บไว้ในเครื่องหลายเครื่อง ทำให้การดำเนินการข้อมูลง่ายขึ้นแม้ในเครื่องที่ใช้พลังงานต่ำ
เพื่อให้การปรับขนาด ร้านค้า NoSQL ง่ายขึ้น จึงใช้เครื่องโภคภัณฑ์อย่างง่าย ตาม NoSQL ผู้ใช้ถือว่าพวกเขาจะวางแผนล่วงหน้าและจัดโครงสร้างข้อมูลในลักษณะที่สามารถดึงข้อมูลที่จำเป็นทั้งหมดสำหรับการดำเนินการเฉพาะจากโหนดเดียวกันได้ในครั้งเดียว ข้อมูลจะต้องได้รับการทำให้เป็นมาตรฐานในโหนดต่างๆ (ข้อมูลที่ปรุงไว้ล่วงหน้าสำหรับการดำเนินการ) เพื่อให้ได้รับการทำให้เป็นมาตรฐาน ใน NoSQL คุณสามารถรวมไฟล์ได้ แต่อย่าคาดหวังการรวมแบบ SQL ด้วยโครงสร้างที่ปรับให้เหมาะสม แอปพลิเคชันในโลกของ NoSQL เชื่อว่าความสอดคล้องของข้อมูลจะมั่นใจได้เมื่อเวลาผ่านไป เป็นเรื่องสมเหตุสมผลสำหรับระบบ NoSQL ที่จะให้สวิตช์เพื่อทำการเปลี่ยนแปลงให้สอดคล้องกันมากกว่าสิ่งที่จำเป็น สิ่งสำคัญของการตัดสินใจด้านสถาปัตยกรรม เช่นเดียวกับด้านอื่นๆ คือการดูกรณีการใช้งานและเลือกที่เก็บข้อมูลที่เหมาะสม
การเลือกฐานข้อมูลที่เหมาะสมเป็นสิ่งสำคัญเนื่องจากจำเป็นต้องมีผู้ใช้จำนวนมาก MongoDB, Apache HBase และ Cassandra เป็นฐานข้อมูล NoSQL ที่สามารถปรับใช้ได้เร็วกว่า ฐานข้อมูลมาตรฐาน เหตุผลนี้คือพวกเขาไม่ยึดติดกับโมเดล ACID ซึ่งอาจส่งผลให้ประสิทธิภาพลดลง ในทางกลับกัน ฐานข้อมูล NoSQL สามารถทำงานได้ในระดับสูงเมื่อจำเป็น เมื่อเลือกฐานข้อมูล ตรวจสอบให้แน่ใจว่าเหมาะสมกับความต้องการของคุณ
เหตุใดจึงต้องใช้ฐานข้อมูลเชิงสัมพันธ์
เหมาะสมอย่างยิ่งที่จะปรับขนาดฐานข้อมูลของคุณในแนวตั้ง เนื่องจากได้รับการปกป้องอย่างดีและมีเวลาแฝงต่ำ ฐานข้อมูลที่ไม่ใช่เชิงสัมพันธ์ ซึ่งตรงข้ามกับฐานข้อมูลเชิงสัมพันธ์ที่สอดคล้องกับกรด ขาดความสอดคล้องและความปลอดภัยสำหรับประสิทธิภาพและความสามารถในการปรับขนาด ฐานข้อมูล NoSQL เป็นตัวเลือกที่ยอดเยี่ยมสำหรับการปรับขนาดในแนวนอน เนื่องจากไม่จำกัดจำนวนเซิร์ฟเวอร์และสามารถปรับขนาดได้อย่างรวดเร็วเนื่องจากความเร็วในการประมวลผลต่ำ
เหตุใด Sql จึงปรับขนาดในแนวนอนไม่ได้
SQL ไม่สามารถปรับขนาดในแนวนอนได้เนื่องจากเป็น ระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) RDBMS ไม่ได้ออกแบบมาเพื่อปรับขนาดในแนวนอน พวกมันได้รับการออกแบบให้ปรับขนาดในแนวตั้ง ซึ่งหมายความว่าพวกมันได้รับการออกแบบให้ขยายขนาดโดยการเพิ่มทรัพยากร (CPU, หน่วยความจำ ฯลฯ) ให้กับเซิร์ฟเวอร์เครื่องเดียว
เหตุใด Nosql จึงดีกว่าสำหรับการปรับขนาดแนวนอน
ฐานข้อมูล NoSQL สามารถปรับขนาดตามแนวนอนได้ นอกเหนือจากการจัดการทราฟฟิกที่สูงขึ้นแล้ว ชาร์ดดิ้งยังช่วยให้คุณเพิ่มเซิร์ฟเวอร์ในฐานข้อมูล NoSQL ของคุณได้อีกด้วย ไม่มีความลับใดที่ฐานข้อมูล NoSQL เป็นตัวเลือกที่ต้องการสำหรับชุดข้อมูลขนาดใหญ่และมีการเปลี่ยนแปลงบ่อยครั้ง เนื่องจากความสามารถในการปรับขนาดแนวนอนนั้นสูงกว่าความสามารถในการปรับขนาดตามแนวตั้ง
วิธีปรับขนาดฐานข้อมูล Nosql
การปรับขนาดฐานข้อมูล nosql เป็นกระบวนการเพิ่มขีดความสามารถของระบบเพื่อจัดการกับปริมาณงานที่เพิ่มขึ้นโดยการเพิ่มทรัพยากรให้มากขึ้น ขั้นตอนการปรับขนาดฐานข้อมูล nosql สามารถแบ่งออกได้เป็น 2 วิธีหลักๆ ได้แก่ การปรับขนาดตามแนวตั้งและการปรับขนาดตามแนวนอน
การปรับขนาดในแนวตั้งเป็นกระบวนการของการเพิ่มทรัพยากรให้กับโหนดเดียวในระบบ เช่น การเพิ่มแกน CPU หน่วยความจำ หรือที่เก็บข้อมูล วิธีนี้สามารถใช้เพื่อเพิ่มความจุของฐานข้อมูล nosql เพื่อจัดการข้อมูลหรือผู้ใช้จำนวนมากขึ้น
การปรับขนาดแนวนอนเป็นกระบวนการของการเพิ่มโหนดในระบบ วิธีนี้สามารถใช้เพื่อเพิ่มความจุของฐานข้อมูล nosql เพื่อจัดการข้อมูลหรือผู้ใช้มากขึ้นโดยการเพิ่มโหนดให้กับระบบและกระจายภาระงานข้ามโหนด
หากคุณมีสภาพแวดล้อม Node.js ที่ใช้งานได้ คุณจะสามารถทำบทช่วยสอนนี้ให้เสร็จสมบูรณ์ได้ ฉันได้สร้างโฟลเดอร์ชื่อ nodejs-dynamodb-sample ที่มีไฟล์ DynamoDB ที่ฉันนำเข้าแล้ว โปรดดูหน้า GitHub ของฉันสำหรับลิงก์ไปยังตัวอย่าง แอปตัวอย่างพร้อมใช้งานเพื่อค้นหาและดึงข้อมูลภาพยนตร์จาก DynamoDB ในบทความนี้ เราจะใช้บริการ Identity and Access Management (IAM) ของ Amazon เพื่อจัดเก็บข้อมูลใน S3 และเข้าถึง DynamoDB บน Amazon Web Services (AWS) คุณต้องลงทะเบียนและสร้างผู้ใช้ก่อนจึงจะใช้บริการ IAM ของ Amazon ได้ คุณสามารถสร้างบัญชี POST /movies ใหม่ได้โดยป้อนชื่อและปีของภาพยนตร์
หากคุณต้องการติดตามภาพยนตร์ในปีใดปีหนึ่ง ให้ป้อนฟิลด์คีย์ จากนั้นคุณสามารถดำเนินการสร้างแอปพลิเคชันของคุณเองตามแอปพลิเคชันนี้ได้ หากคุณไม่ลบตารางของคุณหลังจากใช้งานไปแล้ว คุณมีความเสี่ยงที่จะเกิดต้นทุนการโฮสต์และบริการ AWS เมื่อคุณเยี่ยมชมคอนโซล DynamoDB บน Amazon Web Services คุณจะเห็นพื้นที่จัดเก็บที่คุณมีใน AWS คุณสามารถดูรายการในตารางรายการ เข้าถึงเมตริกจากแอปพลิเคชันของคุณ และดูค่าใช้จ่ายรายเดือนโดยประมาณโดยคลิกที่ 'ภาพยนตร์' รหัสสำหรับแบบฝึกหัดนี้สามารถพบได้บนหน้า GitHub ของฉัน https://github.com/adamfowleruk/nodejs-dynamodb-sample
ข้อดีข้อเสียของฐานข้อมูล Nosql และ Sql
ด้วยเหตุผลหลายประการ ฐานข้อมูล NoSQL จึงเป็นทางเลือกแทน ฐานข้อมูล SQL แบบเดิม กระบวนการปรับขนาดนั้นผู้ใช้ปลายทางมองไม่เห็นเป็นส่วนใหญ่เนื่องจากได้รับการออกแบบโดยคำนึงถึงขนาดเป็นหลัก ด้วยเหตุนี้จึงเหมาะอย่างยิ่งสำหรับแอปพลิเคชันที่ต้องการปริมาณงานสูงหรือเวลาแฝงต่ำ ฐานข้อมูล NoSQL เหมาะสำหรับข้อมูลที่ไม่มีโครงสร้าง เช่น เอกสาร ในขณะที่ฐานข้อมูล SQL เหมาะสำหรับการทำธุรกรรมหลายแถว โดยทั่วไป วิธีจัดการธุรกรรมในฐานข้อมูลแต่ละประเภทมีความแตกต่างกัน ฐานข้อมูล SQL นั้นแยกตามแถวของตารางสำหรับธุรกรรม ในขณะที่ฐานข้อมูล NoSQL นั้นแยกตามเอกสารสำหรับธุรกรรม แม้ว่าความแตกต่างนี้จะไม่ชัดเจนเสมอไป แต่ก็อาจมีนัยสำคัญในบางกรณี
Nosql Scale ในแนวนอนเป็นอย่างไร
ฐานข้อมูล Nosql ได้รับการออกแบบให้ปรับขนาดได้ ซึ่งหมายความว่าสามารถจัดการกับข้อมูลและทราฟฟิกที่เพิ่มขึ้นโดยไม่ทำให้ช้าลง วิธีหนึ่งที่พวกเขาทำได้สำเร็จคือการปรับขนาดในแนวนอน ซึ่งหมายถึงการเพิ่มเซิร์ฟเวอร์ให้กับระบบตามความจำเป็น สิ่งนี้ตรงกันข้ามกับการปรับขนาดในแนวตั้ง ซึ่งหมายถึงการเพิ่มเซิร์ฟเวอร์ที่มีประสิทธิภาพมากขึ้น
ฐานข้อมูล Nosql ปรับขนาดแนวนอนได้ง่ายกว่า
เนื่องจากฐานข้อมูล NoSQL ไม่มีสคีมา จึงง่ายต่อการปรับขนาดในแนวนอน เนื่องจากสามารถจัดเก็บอ็อบเจ็กต์บนเซิร์ฟเวอร์ต่างๆ ได้โดยไม่ต้องต่อแถว คุณโหลดฐานข้อมูลของระบบจากหลายเซิร์ฟเวอร์โดยเป็นส่วนหนึ่งของมาตราส่วนแนวนอน
ความแตกต่างระหว่าง Sql และ Nosql
ฐานข้อมูล SQL เป็นฐานข้อมูลเชิงสัมพันธ์ที่ใช้ภาษาคิวรีที่มีโครงสร้างสำหรับจัดเก็บและดึงข้อมูล ฐานข้อมูล NoSQL เป็นฐานข้อมูลที่ไม่ใช่เชิงสัมพันธ์ซึ่งไม่ได้ใช้ภาษาคิวรีที่มีโครงสร้าง และมักจะปรับขนาดได้และมีประสิทธิภาพมากกว่าฐานข้อมูล SQL
ภาษาคิวรีที่มีโครงสร้าง (SQL) เป็นหนึ่งในภาษาโปรแกรมที่ใช้บ่อยที่สุดและเป็นที่นิยมสำหรับ ระบบจัดการฐานข้อมูลเชิงสัมพันธ์ ข้อมูลที่จัดเก็บและเรียกใช้ในรูปแบบ NoSQL นอกเหนือจากรูปแบบตารางจะสามารถเข้าถึงได้ง่ายกว่า ผลิตภัณฑ์ทั้งสองรายการมีความเข้าใจอย่างถ่องแท้ถึงข้อดีและข้อเสียเพื่อให้คุณเห็นภาพข้อดีและข้อเสียของผลิตภัณฑ์อย่างชัดเจน SQL เป็นภาษาโปรแกรมที่ได้รับความนิยมสูงสุดสำหรับ RDBMS และใช้เพื่อเก็บข้อมูลที่ไม่มีโครงสร้าง กึ่งโครงสร้าง และข้อมูลที่มีโครงสร้าง ในขณะที่ NoSQL เป็นภาษาโปรแกรมยอดนิยมสำหรับการจัดเก็บข้อมูลที่มีโครงสร้าง ไม่มีโครงสร้าง และกึ่งโครงสร้าง ขึ้นอยู่กับความต้องการของคุณและโครงการที่คุณกำลังทำ ซึ่งดีกว่าคือตัวเลือกที่ดี มีความแตกต่างระหว่างสองประเภท: ประเภทแรกเน้นการสืบค้นที่ซับซ้อนพร้อมความสอดคล้องของข้อมูลและคุณสมบัติของกรด ในขณะที่ประเภทหลังเป็นแบบออบเจกต์และสามารถจัดการประเภทข้อมูลได้หลากหลาย