เลือกฐานข้อมูล: Cloud Firestore หรือฐานข้อมูลเรียลไทม์

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

การมีอยู่

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

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

กำลังสอบถาม

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

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

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

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

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

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

ความสามารถในการขยายขนาด

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

ความปลอดภัย

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

ราคา

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

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

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

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

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

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

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

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

เรียนรู้เพิ่มเติมเกี่ยวกับคุณสมบัติที่มีให้ทั้งใน Realtime Database และ Cloud Firestore

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

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