เลือกฐานข้อมูล: Cloud Firestore หรือ Realtime Database

Firebase นำเสนอโซลูชันฐานข้อมูลที่เข้าถึงได้บนคลาวด์สองแบบที่รองรับการซิงค์ข้อมูลแบบเรียลไทม์:

  • เมฆ FireStore เป็นฐานข้อมูลใหม่ล่าสุด Firebase สำหรับการพัฒนาแอพมือถือ สร้างขึ้นจากความสำเร็จของฐานข้อมูลเรียลไทม์ด้วยโมเดลข้อมูลใหม่ที่ใช้งานง่ายขึ้น Cloud Firestore ยังนำเสนอการสืบค้นข้อมูลที่สมบูรณ์และรวดเร็วยิ่งขึ้น และปรับขนาดได้ไกลกว่าฐานข้อมูลเรียลไทม์

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

Firebase แนะนำฐานข้อมูลใด

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

ทั้งสองโซลูชั่นนำเสนอ:

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

ข้อควรพิจารณาที่สำคัญ

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

บทบาทของฐานข้อมูล
แอพของฉันใช้ฐานข้อมูลสำหรับ...
การซิงโครไนซ์ข้อมูลเป็นหลักด้วยการสืบค้นข้อมูลพื้นฐาน
ถ้าคุณไม่จำเป็นต้องสอบถามขั้นสูงเรียงลำดับและการทำธุรกรรมทางเราขอแนะนำให้เรียลไทม์ฐานข้อมูล
การสืบค้น การเรียงลำดับ และธุรกรรมขั้นสูง
หากคุณต้องการปฏิสัมพันธ์ที่ซับซ้อนกับข้อมูลของคุณตัวอย่างเช่นในแอปอีคอมเมิร์ซเราขอแนะนำให้เมฆ FireStore
การดำเนินงานเกี่ยวกับข้อมูล
การใช้ฐานข้อมูลของแอปของฉันดูเหมือนว่า...
ข้อมูลไม่กี่ GB หรือน้อยกว่าที่เปลี่ยนแปลงบ่อยๆ
ถ้า app ของคุณจะส่งกระแสของการปรับปรุงเล็ก ๆ เช่นในแอปพลิเคไวท์บอร์ดดิจิตอลเราขอแนะนำให้เรียลไทม์ฐานข้อมูล
ข้อมูลหลายร้อย GB ถึง TBs ที่อ่านบ่อยกว่าที่มีการเปลี่ยนแปลง
สำหรับชุดข้อมูลขนาดใหญ่มากและเมื่อการดำเนินงานชุดที่มีความจำเป็นบ่อยครั้งเราขอแนะนำให้เมฆ FireStore
แบบจำลองข้อมูล
ฉันชอบจัดโครงสร้างข้อมูลของฉันเป็น...
ต้นไม้ JSON อย่างง่าย
สำหรับข้อมูลที่ไม่มีโครงสร้าง JSON เราขอแนะนำให้เรียลไทม์ฐานข้อมูล
เอกสารที่จัดเป็นคอลเลกชัน
สำหรับเอกสารที่มีโครงสร้างและคอลเลกชันนี้เราขอแนะนำเมฆ FireStore
ความพร้อมใช้งาน
ความต้องการความพร้อมของฉันคือ...
รับประกันความพร้อมใช้งานสูงมากถึง 99.999%
ถ้าว่างมีความสำคัญสูงสุดเช่นในแอพพลิเคอีคอมเมิร์ซเราขอแนะนำให้เมฆ FireStore
รับประกัน uptime อย่างน้อย 99.95%
เมื่อพร้อมใช้งานสูงมาก แต่ไม่สำคัญเป็นที่ยอมรับเราขอแนะนำให้ทั้งเมฆ FireStore หรือเรียลไทม์ฐานข้อมูล
แบบสอบถามออฟไลน์เกี่ยวกับข้อมูลในเครื่อง
แอปของฉันจะต้องดำเนินการค้นหาบนอุปกรณ์ที่มีการเชื่อมต่อจำกัดหรือไม่มีเลย...
บ่อยๆ.
สำหรับความสามารถสอบถามข้อมูลที่มีความซับซ้อนในท้องถิ่นเมื่อผู้ใช้ออฟไลน์เราขอแนะนำให้เมฆ FireStore
ไม่ค่อยหรือไม่เคย
หากคุณคาดหวังว่าผู้ใช้ของคุณจะต้องมีอย่างต่อเนื่องออนไลน์เราขอแนะนำให้เมฆ FireStore หรือเรียลไทม์ฐานข้อมูล
จำนวนอินสแตนซ์ฐานข้อมูล
ในแต่ละโปรเจ็กต์ของฉัน ฉันต้องใช้...
ฐานข้อมูลจำนวนมาก เช่น ฐานข้อมูลสำหรับลูกค้ารายใหญ่แต่ละราย
เพราะมันช่วยให้คุณเพิ่มหลายฐานข้อมูลโครงการ Firebase เดียวเราขอแนะนำให้เรียลไทม์ฐานข้อมูล
เพียงฐานข้อมูลเดียว
หากคุณจำเป็นต้องมีฐานข้อมูลเดียวเราขอแนะนำให้ทั้งเมฆ FireStore หรือเรียลไทม์ฐานข้อมูล

สิ่งสำคัญอื่น ๆ ที่ต้องพิจารณามีอะไรบ้าง?

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

แบบจำลองข้อมูล

ทั้งฐานข้อมูลเรียลไทม์และ Cloud Firestore เป็นฐานข้อมูล NoSQL

ฐานข้อมูลเรียลไทม์ Cloud Firestore
เก็บข้อมูลเป็นต้นไม้ JSON ขนาดใหญ่หนึ่งต้น
  • ข้อมูลอย่างง่ายนั้นง่ายต่อการจัดเก็บ
  • ข้อมูลแบบลำดับชั้นที่ซับซ้อนยากต่อการจัดระเบียบตามขนาด

เรียนรู้เพิ่มเติมเกี่ยวกับการ อัปเดตรูปแบบข้อมูลในฐานข้อมูล

เก็บข้อมูลเป็นชุดของเอกสาร
  • ข้อมูลอย่างง่ายนั้นง่ายต่อการจัดเก็บในเอกสาร ซึ่งคล้ายกับ JSON มาก
  • ข้อมูลแบบลำดับชั้นที่ซับซ้อนจะง่ายต่อการจัดระเบียบตามขนาด โดยใช้การรวบรวมย่อยภายในเอกสาร
  • ต้องใช้การลดค่าปกติและการทำให้ข้อมูลแบนราบน้อยลง

เรียนรู้เพิ่มเติมเกี่ยวกับ ข้อมูลแบบคลาวด์ FireStore

การสนับสนุนแบบเรียลไทม์และออฟไลน์

ทั้งคู่มี SDK แบบเรียลไทม์สำหรับมือถือเป็นอันดับแรก และทั้งคู่รองรับการจัดเก็บข้อมูลในเครื่องสำหรับแอปที่พร้อมใช้งานออฟไลน์

ฐานข้อมูลเรียลไทม์ Cloud Firestore
การสนับสนุนแบบออฟไลน์สำหรับลูกค้า iOS และ Android การสนับสนุนออฟไลน์สำหรับไคลเอ็นต์ iOS, Android และเว็บ

การแสดงตน

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

ฐานข้อมูลเรียลไทม์ Cloud Firestore
รองรับการแสดงตน ไม่รองรับโดยกำเนิด คุณสามารถใช้การสนับสนุนฐานข้อมูลเรียลไทม์สำหรับการมีอยู่ได้โดยการซิงค์ Cloud Firestore และฐานข้อมูลเรียลไทม์โดยใช้ฟังก์ชันคลาวด์ ดู การแสดงตนในการสร้างเมฆ FireStore

การสอบถาม

ดึง จัดเรียง และกรองข้อมูลจากฐานข้อมูลใดฐานข้อมูลหนึ่งผ่านการสืบค้น

ฐานข้อมูลเรียลไทม์ Cloud Firestore
คำสั่งลึกกับ จำกัด การเรียงลำดับและการกรองการทำงาน
  • สามารถเรียงลำดับคำสั่งหรือตัวกรองในทรัพย์สิน แต่ไม่ใช่ทั้งสองอย่าง
  • การสืบค้นข้อมูลมีความลึกโดยค่าเริ่มต้น: พวกมันจะส่งคืนทรีย่อยทั้งหมดเสมอ
  • การสืบค้นข้อมูลสามารถเข้าถึงข้อมูลได้ในทุกระดับ จนถึงค่า leaf-node แต่ละรายการในแผนผัง JSON
  • แบบสอบถามไม่ต้องการดัชนี อย่างไรก็ตาม ประสิทธิภาพของการสืบค้นข้อมูลบางรายการจะลดลงเมื่อชุดข้อมูลของคุณเติบโตขึ้น
คำสั่งที่จัดทำดัชนีที่มีสารประกอบ เรียงลำดับและการกรอง
  • คุณสามารถเชื่อมโยงตัวกรองและรวมการกรองและการเรียงลำดับบนคุณสมบัติในแบบสอบถามเดียว
  • คิวรีนั้นตื้น: ส่งคืนเอกสารเฉพาะในคอลเล็กชันหรือกลุ่มคอลเล็กชันเฉพาะ และไม่ส่งคืนข้อมูลการรวบรวมย่อย
  • แบบสอบถามต้องส่งคืนเอกสารทั้งหมดเสมอ
  • คิวรีได้รับการจัดทำดัชนีโดยค่าเริ่มต้น: ประสิทธิภาพของคิวรีเป็นสัดส่วนกับขนาดของชุดผลลัพธ์ ไม่ใช่ชุดข้อมูลของคุณ

การเขียนและการทำธุรกรรม

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

ความน่าเชื่อถือและประสิทธิภาพ

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

ความสามารถในการปรับขนาด

ฐานข้อมูลเรียลไทม์ Cloud Firestore
การปรับขนาดต้องใช้การแบ่งส่วน
  • ปรับขนาดเป็น 200,000 การเชื่อมต่อพร้อมกันและ 1,000 เขียน/วินาทีในฐานข้อมูลเดียว การปรับขนาดเกินกว่านั้นต้องการการแบ่งส่วนข้อมูลของคุณในหลายฐานข้อมูล
  • ไม่มีการจำกัดอัตราการเขียนข้อมูลแต่ละส่วนในเครื่อง
การปรับขนาดเป็นไปโดยอัตโนมัติ
  • ตาชั่งโดยอัตโนมัติอย่างสมบูรณ์ ปัจจุบันขีดจำกัดการปรับขนาดอยู่ที่ประมาณ 1 ล้านการเชื่อมต่อพร้อมกันและ 10,000 เขียน/วินาที เราวางแผนที่จะเพิ่มขีดจำกัดเหล่านี้ในอนาคต
  • มี ข้อ จำกัด เกี่ยวกับอัตราการเขียนเอกสารของแต่ละบุคคลหรือดัชนี

ความปลอดภัย

ฐานข้อมูลเรียลไทม์ Cloud Firestore
ภาษากฎการเรียงซ้อนที่แยกการอนุญาตและการตรวจสอบความถูกต้อง กฎที่ไม่เรียงซ้อนที่รวมการอนุญาตและการตรวจสอบความถูกต้อง
  • อ่านและเขียนจาก SDK อุปกรณ์เคลื่อนที่รักษาความปลอดภัยโดย มีเมฆ FireStore กฎการรักษาความปลอดภัย
  • อ่านและเขียนจาก SDK ของเซิร์ฟเวอร์ค้ำประกันโดย เอกลักษณ์และ Access Management (IAM)
  • กฎจะไม่เรียงต่อกันเว้นแต่คุณจะใช้ไวด์การ์ด
  • กฎสามารถจำกัดการสืบค้น: หากผลลัพธ์ของการสืบค้นอาจมีข้อมูลที่ผู้ใช้ไม่มีสิทธิ์เข้าถึง การสืบค้นทั้งหมดจะล้มเหลว

ราคา

การแก้ปัญหาทั้งสองมีอยู่ใน จุดประกายและทำให้แผนกำหนดราคา

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

อ่านเพิ่มเติมเกี่ยวกับ เรียลไทม์แผนกำหนดราคาฐานข้อมูล

ค่าใช้จ่ายในการดำเนินงานหลักดำเนินการในฐานข้อมูลของคุณ (อ่านเขียนลบ) และในอัตราที่ต่ำกว่าแบนด์วิดธ์และการเก็บรักษา

เมฆ FireStore สนับสนุนรายวัน วงเงินค่าใช้จ่าย สำหรับโครงการ App Engine เพื่อให้แน่ใจว่าคุณไม่ได้ไปมากกว่าค่าใช้จ่ายที่คุณพอใจ

อ่านเพิ่มเติมเกี่ยวกับ แผนการกำหนดราคาเมฆ FireStore

การใช้ Cloud Firestore และฐานข้อมูลเรียลไทม์

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

เรียนรู้เพิ่มเติมเกี่ยวกับการให้บริการที่มีอยู่ในทั้ง ฐานข้อมูลเรียลไทม์ และ มีเมฆ FireStore

พร้อมที่จะเลือกฐานข้อมูลแล้วหรือยัง?

หวังว่าการเปรียบเทียบนี้จะช่วยให้คุณจัดการกับโซลูชันฐานข้อมูล Firebase ตอนนี้คุณสามารถเรียนรู้วิธีเพิ่มฐานข้อมูลในโครงการ Firebase ของคุณ