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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

เรียนรู้เพิ่มเติมเกี่ยวกับ โมเดลข้อมูล Realtime Database

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

เรียนรู้เพิ่มเติมเกี่ยวกับ โมเดลข้อมูล Cloud Firestore

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

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

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

การมีอยู่

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

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

การสอบถาม

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

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

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

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

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

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

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

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

ความปลอดภัย

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

ราคา

โซลูชันทั้งสองมีอยู่ใน แผนราคา Spark และ Blaze

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

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

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

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

อ่านเพิ่มเติมเกี่ยวกับ แผนราคา Cloud Firestore

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

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

เรียนรู้เพิ่มเติมเกี่ยวกับคุณสมบัติที่มีอยู่ใน ฐานข้อมูลเรียลไทม์ และ Cloud Firestore

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

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