NoSQL คืออะไรทำงานอย่างไรและมีประโยชน์อะไรบ้าง [ปิด]


168

ฉันเคยได้ยินสิ่งต่าง ๆ เกี่ยวกับ NoSQL และในที่สุดมันก็อาจกลายเป็นวิธีการแทนที่สำหรับการจัดเก็บ SQL DB เนื่องจากข้อเท็จจริงที่ว่าการทำงานร่วมกันของฐานข้อมูลมักจะเป็นคอขวดสำหรับความเร็วบนเว็บ

ดังนั้นฉันมีคำถามสองสามข้อ:

  1. มันคืออะไรกันแน่?

  2. มันทำงานยังไง?

  3. ทำไมมันจะดีกว่าการใช้ฐานข้อมูล SQL? และมันจะดีกว่ามากแค่ไหน?

  4. เทคโนโลยีใหม่เกินไปที่จะเริ่มต้นใช้งานหรือยังคุ้มค่าที่จะดูหรือไม่?


คำตอบ:


110
  1. มันคืออะไรกันแน่?

    ในอีกด้านหนึ่งระบบที่เฉพาะเจาะจงแต่มันก็กลายเป็นคำทั่วไปสำหรับแบ็กเอนด์การจัดเก็บข้อมูลใหม่ที่หลากหลายที่ไม่เป็นไปตามรูปแบบฐานข้อมูลเชิงสัมพันธ์

  2. มันทำงานยังไง?

    แต่ละระบบที่มีชื่อสามัญทำงานแตกต่างกัน แต่แนวคิดพื้นฐานคือให้ความยืดหยุ่นและประสิทธิภาพที่ดีขึ้นโดยใช้แบบจำลองฐานข้อมูลที่ไม่รองรับการทำงานทั้งหมดของ RDBMS ทั่วไป แต่ยังมีฟังก์ชั่นเพียงพอที่จะเป็นประโยชน์ ในทางที่เป็นเช่น MySQL ซึ่งในครั้งเดียวขาดการสนับสนุนการทำธุรกรรม แต่เนื่องจากการจัดการที่ดีกว่าระบบฐานข้อมูลอื่น ๆ หากคุณสามารถเขียนแอพของคุณในแบบที่ไม่ต้องการการทำธุรกรรมมันเป็นเรื่องที่ดีมาก

  3. ทำไมมันจะดีกว่าการใช้ฐานข้อมูล SQL? และมันจะดีกว่ามากแค่ไหน?

    มันจะเป็นการดีกว่าเมื่อไซต์ของคุณต้องการปรับขนาดอย่างหนาแน่นเพื่อให้ RDBMS ที่ดีที่สุดทำงานบนฮาร์ดแวร์ที่ดีที่สุดที่คุณสามารถจ่ายได้และปรับให้เหมาะสมที่สุดเท่าที่จะเป็นไปได้ วิธีที่ดีกว่านั้นขึ้นอยู่กับกรณีการใช้งานเฉพาะ (กิจกรรมการอัพเดทจำนวนมากที่รวมกับการรวมจำนวนมากยากสำหรับ RDBMS แบบ "ดั้งเดิม") - อาจเป็นปัจจัย 1,000 กรณีที่รุนแรง

  4. เทคโนโลยีใหม่เกินไปที่จะเริ่มต้นใช้งานหรือยังคุ้มค่าที่จะดูหรือไม่?

    ขึ้นอยู่กับสิ่งที่คุณพยายามจะบรรลุ มันโตพอที่จะใช้อย่างแน่นอน แต่แอปพลิเคชั่นบางตัวจำเป็นต้องปรับขนาดอย่างหนาแน่น ส่วนใหญ่แล้ว RDBMS แบบดั้งเดิมก็เพียงพอแล้ว อย่างไรก็ตามด้วยการใช้อินเทอร์เน็ตที่แพร่หลายมากขึ้นตลอดเวลาจึงเป็นไปได้ค่อนข้างมากว่าแอปพลิเคชันที่จะกลายเป็นเรื่องธรรมดามากขึ้น (แม้ว่าอาจจะไม่โดดเด่น)


2
ความหมายคือtransactionอะไร
Shawn Mclean


"ความหลากหลายของใหม่แบ็กเอนด์การจัดเก็บข้อมูล" การเชื่อมโยงจะตาย
csguy

1
@csguy ขอบคุณแทนที่ด้วยโอกาสน้อยที่จะหายไป
Michael Borgwardt

135

ไม่มีสิ่งเช่น NoSQL!

NoSQL เป็นคำศัพท์

เป็นเวลาหลายทศวรรษที่ผู้คนพูดถึงฐานข้อมูลพวกเขาหมายถึงฐานข้อมูลเชิงสัมพันธ์ และเมื่อผู้คนพูดถึงฐานข้อมูลเชิงสัมพันธ์พวกเขาหมายถึงคนที่คุณควบคุมด้วยภาษาคิวรีที่มีโครงสร้างของ Edgar F. Codd กำลังจัดเก็บข้อมูลด้วยวิธีอื่นไหม บ้า! สิ่งอื่นใดก็แค่ไฟล์แฟล็ต

แต่ในช่วงไม่กี่ปีที่ผ่านมาผู้คนเริ่มตั้งคำถามกับความเชื่อนี้ ผู้คนสงสัยว่าตารางที่มีแถวและคอลัมน์เป็นวิธีเดียวที่จะแสดงข้อมูลหรือไม่ ผู้คนเริ่มคิดและเขียนโค้ดและเกิดแนวคิดใหม่มากมายในการจัดระเบียบข้อมูล และพวกเขาก็เริ่มสร้างระบบฐานข้อมูลใหม่ที่ออกแบบมาสำหรับวิธีใหม่ในการทำงานกับข้อมูล

ปรัชญาของฐานข้อมูลเหล่านี้แตกต่างกัน แต่สิ่งหนึ่งที่ฐานข้อมูลทั้งหมดเหล่านี้มีเหมือนกันคือว่า Structured Query Language ไม่เหมาะสมสำหรับการใช้งานอีกต่อไป ดังนั้นแต่ละฐานข้อมูลแทนที่ SQL ด้วยภาษาคิวรีของตนเอง ดังนั้นคำว่า NoSQL จึงถือกำเนิดขึ้นเป็นฉลากสำหรับเทคโนโลยีฐานข้อมูลทั้งหมดที่ท้าทายรูปแบบฐานข้อมูลเชิงสัมพันธ์แบบดั้งเดิม

ดังนั้นฐานข้อมูล NoSQL มีอะไรที่เหมือนกัน?

จริงๆแล้วไม่มาก

คุณมักจะได้ยินวลีที่ชอบ:

  • NoSQL สามารถปรับขนาดได้!
  • NoSQL สำหรับ BigData!
  • NoSQL ละเมิด ACID!
  • NoSQL เป็นที่เก็บคีย์ / ค่าที่ได้รับเกียรติ!

มันเป็นเรื่องจริงเหรอ? บางคำสั่งเหล่านี้อาจเป็นจริงสำหรับฐานข้อมูลบางตัวที่เรียกว่า NoSQL แต่ทุกคำสั่งก็เป็นเท็จด้วยอย่างน้อยอีกคำหนึ่ง จริงๆแล้วสิ่งเดียวที่ฐานข้อมูล NoSQL มีเหมือนกันคือมันเป็นฐานข้อมูลที่ไม่ได้ใช้ SQL แค่นั้นแหละ. สิ่งเดียวที่กำหนดพวกเขาคือสิ่งที่ทำให้พวกเขาแตกต่างจากกัน

แล้วฐานข้อมูล NoSQL แตกต่างกันอย่างไร?

ดังนั้นเราจึงเห็นได้ชัดว่าฐานข้อมูลทั้งหมดที่มักจะเรียกว่า NoSQL นั้นแตกต่างกันมากเกินกว่าที่จะประเมินพวกมันได้ แต่ละคนจะต้องได้รับการประเมินแยกต่างหากเพื่อตัดสินใจว่าพวกเขาเหมาะสมในการแก้ปัญหาเฉพาะหรือไม่ แต่เราจะเริ่มที่ไหน โชคดีที่ฐานข้อมูล NoSQL สามารถจัดกลุ่มเป็นบางหมวดหมู่ได้ซึ่งเหมาะสำหรับกรณีการใช้งานที่แตกต่างกัน:

เอกสารที่มุ่งเน้น

ตัวอย่าง: MongoDB, CouchDB

จุดแข็ง: ข้อมูลที่ต่างกัน, การทำงานเชิงวัตถุ, การพัฒนาที่คล่องตัว

ข้อได้เปรียบของพวกเขาคือพวกเขาไม่ต้องการโครงสร้างข้อมูลที่สอดคล้องกัน พวกมันมีประโยชน์เมื่อความต้องการของคุณและรูปแบบฐานข้อมูลของคุณเปลี่ยนแปลงตลอดเวลาหรือเมื่อคุณกำลังจัดการกับชุดข้อมูลที่อยู่ด้วยกัน แต่ยังดูแตกต่างกันมาก เมื่อคุณมีตารางจำนวนมากที่มีสองคอลัมน์เรียกว่า "key" และ "value" สิ่งเหล่านี้อาจคุ้มค่าที่จะดู

ฐานข้อมูลกราฟ

ตัวอย่าง: Neo4j, GiraffeDB

จุดแข็ง: การทำเหมืองข้อมูล

ในขณะที่ฐานข้อมูล NoSQL ส่วนใหญ่ละทิ้งแนวคิดในการจัดการความสัมพันธ์ของข้อมูล แต่ฐานข้อมูลเหล่านี้ยอมรับมากกว่าฐานข้อมูลเชิงสัมพันธ์ที่เรียกว่า

จุดเน้นของพวกเขาคือการกำหนดข้อมูลตามความสัมพันธ์กับข้อมูลอื่น ๆ เมื่อคุณมีตารางจำนวนมากที่มีคีย์หลักซึ่งเป็นคีย์หลักของอีกสองตาราง (และอาจมีข้อมูลที่อธิบายความสัมพันธ์ระหว่างพวกเขา) ดังนั้นสิ่งเหล่านี้อาจเป็นสิ่งที่คุณต้องการ

ร้านค้ามูลค่าคีย์

ตัวอย่าง: Redis, Cassandra, MemcacheDB

จุดแข็ง: ค้นหาค่าได้อย่างรวดเร็วด้วยปุ่มที่รู้จัก

มันง่ายมาก แต่ก็ทำให้ใช้งานได้ง่ายและรวดเร็ว เมื่อคุณไม่จำเป็นต้องใช้โพรซีเดอร์ข้อ จำกัด ทริกเกอร์และคุณลักษณะฐานข้อมูลขั้นสูงทั้งหมดและคุณต้องการเพียงแค่การจัดเก็บและเรียกค้นข้อมูลของคุณอย่างรวดเร็ว

น่าเสียดายที่พวกเขาคิดว่าคุณรู้ว่าคุณกำลังมองหาอะไร คุณต้องการรายละเอียดของ User157641? ไม่มีปัญหาจะใช้เวลาเพียงไมโครวินาทีเท่านั้น แต่เมื่อคุณต้องการชื่อผู้ใช้ทุกคนที่มีอายุระหว่าง 16 ถึง 24 ปีจะมี "วาฟเฟิล" เป็นอาหารโปรดและลงชื่อเข้าใช้ใน 24 ชั่วโมงที่ผ่านมา โชคดี เมื่อคุณไม่มีคีย์ที่แน่นอนและไม่ซ้ำใครสำหรับผลลัพธ์ที่ระบุคุณจะไม่สามารถนำมันออกมาจากร้านค้า KV ของคุณได้อย่างง่ายดาย

SQL ล้าสมัยหรือไม่

ผู้สนับสนุน NoSQL บางคนอ้างว่าฐานข้อมูล NoSQL ที่พวกเขาชื่นชอบเป็นวิธีใหม่ในการทำสิ่งต่างๆและ SQL เป็นเรื่องในอดีต

ถูกต้องหรือไม่

ไม่แน่นอนพวกเขาไม่ได้ ในขณะที่มีปัญหา SQL ไม่เหมาะ แต่ก็ยังมีจุดแข็ง แบบจำลองข้อมูลจำนวนมากจะถูกนำเสนอเป็นชุดของตารางที่อ้างอิงซึ่งกันและกันได้ดีที่สุด โดยเฉพาะอย่างยิ่งเนื่องจากโปรแกรมเมอร์ฐานข้อมูลส่วนใหญ่ได้รับการฝึกฝนมานานหลายสิบปีในการคิดข้อมูลในลักษณะที่สัมพันธ์กันและพยายามที่จะสื่อความคิดนี้เข้ากับเทคโนโลยีใหม่ที่ไม่ได้ผลิตขึ้นมา

ฐานข้อมูล NoSQL ไม่ได้ถูกแทนที่สำหรับ SQL - เป็นทางเลือก

ระบบนิเวศซอฟต์แวร์ส่วนใหญ่รอบฐานข้อมูล NoSQL ที่แตกต่างกันยังไม่สมบูรณ์ ในขณะที่มีความก้าวหน้าคุณยังไม่ได้มีเครื่องมือเสริมที่เป็นผู้ใหญ่และมีประสิทธิภาพเท่าที่มีอยู่สำหรับฐานข้อมูล SQL ที่เป็นที่นิยม

นอกจากนี้ยังมีความรู้เพิ่มเติมอีกมากมายสำหรับ SQL รุ่นของนักวิทยาศาสตร์คอมพิวเตอร์ใช้เวลาหลายสิบปีของการประกอบอาชีพในการวิจัยมุ่งเน้นไปที่ฐานข้อมูลเชิงสัมพันธ์และมันแสดงให้เห็น: วรรณกรรมที่เขียนเกี่ยวกับฐานข้อมูล SQL และการสร้างแบบจำลองข้อมูลเชิงสัมพันธ์ทั้งในทางปฏิบัติและทางทฤษฎี วิธีสร้างฐานข้อมูลเชิงสัมพันธ์สำหรับข้อมูลของคุณเป็นหัวข้อที่ได้รับการวิจัยเป็นอย่างดีมันยากที่จะหาเคสที่มีมุมซึ่งไม่มีแนวปฏิบัติที่ดีที่สุดสำหรับหนังสือ

ฐานข้อมูล NoSQL ส่วนใหญ่ยังอยู่ในช่วงเริ่มต้น เรายังคงหาวิธีที่ดีที่สุดในการใช้งาน


ฉันถือว่าคำตอบสำหรับคำถาม NoSQL หมายถึงฐานข้อมูลที่ไม่ใช่เชิงสัมพันธ์หรือไม่? ไม่ใช่ไม่ใช่เพราะฐานข้อมูลกราฟนั้นเป็น NoSQL และมีความสัมพันธ์กัน แก้ไข?
tomasb

1
@tomasb ขึ้นอยู่กับวิธีที่คุณกำหนด "ฐานข้อมูลเชิงสัมพันธ์" ในฐานข้อมูลกราฟความสัมพันธ์มีความสำคัญมากกว่าในฐานข้อมูลเหล่านั้นมักเรียกว่าความสัมพันธ์
ฟิลิปป์

"ไม่มีปัญหาจะใช้เวลาเพียงไมโครวินาทีเท่านั้น" - ฉันไม่สามารถรับ perfomance อ่านที่ไม่ใช่ธุรกรรมเดียวกันในตัวอย่าง psql ได้หรือไม่
Nakilon

2
คำตอบที่ดีถ้อยคำเกือบจะเหมือนทุกสิ่งอย่าง Adam Ruins ยกเว้นมันคือ "Philipp Ruins noSQL" ;-)
JGlass

2
นี่ควรเป็นคำตอบที่ดีที่สุด

28

เนื่องจากมีคนบอกว่าโพสต์ก่อนหน้านี้ของฉันไม่อยู่ในหัวข้อฉันจะพยายามชดเชย :-) NoSQL ไม่ใช่และไม่เคยเป็นมาเพื่อแทนที่ฐานข้อมูล SQL ที่เป็นกระแสหลักมากขึ้น แต่มีคำสองสามคำที่จะได้รับ สิ่งต่าง ๆ ในมุมมองที่ถูกต้อง

หัวใจสำคัญของปรัชญา NoSQLคือการพิจารณาว่าอาจเป็นเพราะเหตุผลทางการค้าและการพกพาเครื่องมือ SQL มักจะมองข้ามพลังอันยิ่งใหญ่ของระบบปฏิบัติการ UNIX และอนุพันธ์ของมัน

ด้วยฐานข้อมูลที่ใช้ระบบไฟล์คุณสามารถใช้ประโยชน์จากความสามารถและพลังของระบบปฏิบัติการพื้นฐานที่เพิ่มขึ้นอย่างต่อเนื่องซึ่งเพิ่มขึ้นอย่างต่อเนื่องเป็นเวลาหลายปีในขณะนี้ตามกฎหมายของมัวร์ ด้วยวิธีนี้คำสั่งระบบปฏิบัติการหลายคำสั่งจะกลายเป็น "ตัวดำเนินการฐานข้อมูล" โดยอัตโนมัติด้วย (ลองนึกถึง "ls" "sort", "find" และยูทิลิตีเชลล์ UNIX อื่น ๆ นับไม่ถ้วน)

ด้วยความคิดนี้และความคิดสร้างสรรค์คุณสามารถสร้างฐานข้อมูลระบบแฟ้มที่สามารถเอาชนะข้อ จำกัด ของเอนจิน SQL ทั่วไปจำนวนมากอย่างน้อยสำหรับรูปแบบการใช้งานเฉพาะซึ่งเป็นจุดสำคัญของปรัชญาของ NoSQL วิธีที่ฉันเห็นมัน

ฉันใช้งานเว็บไซต์หลายร้อยแห่งและพวกเขาใช้ NoSQL ในระดับที่มากกว่าหรือน้อยกว่า ในความเป็นจริงพวกเขาไม่ได้โฮสต์ข้อมูลจำนวนมาก แต่ถึงแม้ว่าพวกเขาบางคนอาจคิดว่าการใช้ NoSQL และระบบไฟล์เพื่อเอาชนะปัญหาคอขวด บางสิ่งที่อาจเป็นเรื่องยากยิ่งขึ้นกับ "คุก" ของ SQL แบบดั้งเดิม ฉันขอให้คุณ google สำหรับ "unix", "manis" และ "shaffer" เพื่อทำความเข้าใจสิ่งที่ฉันหมายถึง


9

ถ้าฉันจำได้อย่างถูกต้องมันหมายถึงประเภทของฐานข้อมูลที่ไม่จำเป็นต้องทำตามแบบฟอร์มที่เกี่ยวข้อง ฐานข้อมูลเอกสารคำนึงถึงฐานข้อมูลที่ไม่มีโครงสร้างเฉพาะและไม่ใช้ SQL เป็นภาษาแบบสอบถามเฉพาะ

โดยทั่วไปจะเหมาะสำหรับเว็บแอปพลิเคชันที่ต้องอาศัยประสิทธิภาพของฐานข้อมูลและไม่ต้องการคุณสมบัติขั้นสูงเพิ่มเติมของ Relation Database Engines ตัวอย่างเช่นที่เก็บ Key-> Value ที่มีการสืบค้นแบบง่ายโดยส่วนต่อประสาน id อาจเร็วกว่า 10-100x ที่ใช้เซิร์ฟเวอร์ SQL ที่สอดคล้องกันโดยมีค่าบำรุงรักษาต่ำกว่านักพัฒนา

ตัวอย่างหนึ่งคือบทความนี้สำหรับร้านค้าOLTP Tuple ซึ่งเสียสละธุรกรรมสำหรับการประมวลผลแบบเธรดเดี่ยว (ไม่มีปัญหาการทำงานพร้อมกันเนื่องจากไม่อนุญาตให้มีการทำงานพร้อมกัน) และเก็บข้อมูลทั้งหมดไว้ในหน่วยความจำ บรรลุประสิทธิภาพที่ดีขึ้น 10-100x เมื่อเทียบกับระบบขับเคลื่อนRDBMS ที่คล้ายกัน โดยพื้นฐานแล้วมันจะย้ายออกจากมุมมอง 'One Size Fits All' ของ SQL และระบบฐานข้อมูล


1
ลิงค์แรกของคุณที่อ้างถึงความหมายของ NoSQL (ระบุว่า "นี่") ดูเหมือนว่าจะตายโปรดแก้ไขให้ถูกต้อง
jobin

7

ในทางปฏิบัติ NoSQL เป็นระบบฐานข้อมูลที่รองรับการเข้าถึงวัตถุไบนารีขนาดใหญ่ได้อย่างรวดเร็ว (docs, jpgs และอื่น ๆ ) โดยใช้กลยุทธ์การเข้าถึงที่สำคัญ นี่เป็นการออกจากการเข้าถึง SQL แบบดั้งเดิมซึ่งดีพอสำหรับค่าตัวอักษรและตัวเลข ไม่เพียงแค่การจัดเก็บข้อมูลภายในและกลยุทธ์การเข้าถึง แต่ยังรวมถึงไวยากรณ์และข้อ จำกัด ในรูปแบบการแสดงผลที่ จำกัด SQL แบบดั้งเดิม การประยุกต์ใช้ BLOB ของฐานข้อมูลเชิงสัมพันธ์แบบดั้งเดิมก็ประสบกับข้อ จำกัด เหล่านี้เช่นกัน

เบื้องหลังคือการรับเข้าทางอ้อมของความล้มเหลวของโมเดล SQL เพื่อสนับสนุน OLTP ทุกรูปแบบหรือรองรับฟอร์แมตข้อมูลใหม่ "การสนับสนุน" หมายถึงไม่เพียง แต่เก็บ แต่ความสามารถในการเข้าถึงอย่างเต็มรูปแบบ - เชิงโปรแกรมและแบบสอบถามโดยใช้รูปแบบมาตรฐาน

ผู้ที่ชื่นชอบเชิงสัมพันธ์ได้อย่างรวดเร็วในการปรับเปลี่ยน defnition ของ NoSQL จาก Not-SQL เป็น Not-Only-SQL เพื่อให้ SQL ยังคงอยู่ในภาพ! สิ่งนี้ไม่ดีโดยเฉพาะเมื่อเราเห็นว่าโปรแกรมจาวาส่วนใหญ่ในปัจจุบันหันไปใช้การทำแผนที่ ORM ของโมเดลเชิงสัมพันธ์ที่เกี่ยวข้อง แนวคิดใหม่จะต้องมีคำจำกัดความที่ชัดเจน มิฉะนั้นมันจะจบลงเช่น SOA

พื้นฐานของระบบ NoSQL นั้นอยู่ในคู่ของคีย์ - ค่าแบบสุ่ม แต่นี่ไม่ใช่เรื่องใหม่ ระบบฐานข้อมูลแบบดั้งเดิมเช่น IMS และ IDMS สนับสนุนคีย์ ramdom ที่แฮช (โดยไม่ใช้ดัชนีใด ๆ ) และยังคงทำอยู่ ในความเป็นจริง IDMS มีคำหลัก NONSQL อยู่แล้วซึ่งพวกเขาสนับสนุนการเข้าถึง SQL ไปยังฐานข้อมูลเครือข่ายเก่าซึ่งพวกเขาเรียกว่า NONSQL


5

มันเหมือนจากุซซี่: ทั้งแบรนด์และชื่อสามัญ มันไม่ได้เป็นเพียงแค่เทคโนโลยีเฉพาะ แต่เฉพาะประเภทของเทคโนโลยีในกรณีนี้หมายถึงขนาดใหญ่ (มักจะเบาบาง) "ฐานข้อมูล" เช่น Google ของ BigTable หรือ CouchDB


5

NoSQLโปรแกรมจริงดูเหมือนจะเป็นฐานข้อมูลเชิงสัมพันธ์ที่นำมาใช้ใน awk โดยใช้ไฟล์ flat บนแบ็กเอนด์ ถึงแม้ว่าพวกเขาจะยอมรับว่า "NoSQL นั้นไม่มีข้อ จำกัด และสามารถทำงานในที่ที่ผลิตภัณฑ์อื่นไม่สามารถทำได้ตัวอย่างเช่นไม่มีการ จำกัด ขนาดของเขตข้อมูลจำนวนคอลัมน์หรือขนาดไฟล์" ฉันไม่คิดว่ามันเป็น ฐานข้อมูลขนาดใหญ่ในอนาคต

ดังที่ Joel กล่าวว่าฐานข้อมูลที่ปรับขนาดได้อย่างหนาแน่นเช่นBigTableหรือHBaseน่าสนใจกว่ามาก GQL เป็นภาษาคิวรีที่เชื่อมโยงกับ BigTable และ App Engine เป็นส่วนใหญ่ SQL ปรับแต่งเพื่อหลีกเลี่ยงคุณสมบัติที่ Google พิจารณาขวดคอ (เช่นเข้าร่วม) อย่างไรก็ตามฉันไม่เคยได้ยินสิ่งนี้เรียกว่า "NoSQL" มาก่อน


5

NoSQL เป็นระบบฐานข้อมูลที่ไม่ได้ใช้การสืบค้น SQL แบบสตริงเพื่อดึงข้อมูล

แต่คุณสร้างแบบสอบถามโดยใช้ API ที่พวกเขาจะให้ตัวอย่างเช่น Amazon DynamoDB เป็นตัวอย่างที่ดีของฐานข้อมูล NoSQL

ฐานข้อมูล NoSQL นั้นดีกว่าสำหรับแอพพลิเคชั่นขนาดใหญ่ซึ่งมีความสามารถในการปรับขยายได้


1

NoSQL หมายถึงฐานข้อมูลที่ไม่ใช่เชิงสัมพันธ์หรือไม่?

ใช่ NoSQL นั้นแตกต่างจาก RDBMS และ OLAP มันใช้โมเดลความสอดคล้องแบบหลวมกว่าฐานข้อมูลเชิงสัมพันธ์แบบดั้งเดิม

แบบจำลองความสอดคล้องจะใช้ในระบบกระจายเช่นระบบหน่วยความจำที่ใช้ร่วมกันแบบกระจายหรือแหล่งข้อมูลแบบกระจาย

มันทำงานอย่างไรภายใน

ระบบฐานข้อมูล NoSQL มักจะได้รับการปรับให้เหมาะสมที่สุดสำหรับการดึงและการดำเนินการต่อท้ายและมักจะมีฟังก์ชั่นเล็ก ๆ น้อย ๆ นอกเหนือจากที่จัดเก็บข้อมูล (เช่นที่เก็บคีย์ - ค่า) ความยืดหยุ่นในการใช้งานที่ลดลงเมื่อเทียบกับระบบ SQL เต็มรูปแบบได้รับการชดเชยด้วยกำไรที่เพิ่มขึ้นอย่างชัดเจนในด้านความยืดหยุ่นและประสิทธิภาพสำหรับข้อมูลบางรุ่น

มันสามารถทำงานกับโครงสร้างและข้อมูลที่ไม่มีโครงสร้าง มันใช้คอลเลกชันแทนตาราง

คุณค้นหา "ฐานข้อมูล" ดังกล่าวได้อย่างไร

ดูSQL กับ NoSQL: การต่อสู้ของแบ็กเอนด์ ; มันอธิบายได้ทั้งหมด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.