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

Firebase มีฐานข้อมูลเอกสารบนคลาวด์ที่ไคลเอ็นต์เข้าถึงได้ 2 รายการ เราขอแนะนำให้ลูกค้าใหม่เริ่มต้นด้วย Cloud Firestore:

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

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

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

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

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

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

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

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

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

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

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

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

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

การมีอยู่

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

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

กำลังสอบถาม

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

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

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

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

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

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

เวลาทำงาน

ต้องการ Cloud Firestore ฐานข้อมูลเรียลไทม์
ประสิทธิภาพการทำงานต่อเนื่องที่สูงมาก
  • ประสิทธิภาพการทำงานปกติที่ 99.999%
  • หากความพร้อมใช้งานมีความสำคัญสูงสุด เช่น ในแอปอีคอมเมิร์ซ ให้ใช้ Cloud Firestore
ประสิทธิภาพการทำงานต่อเนื่องสูง
  • ประสิทธิภาพการทำงานปกติที่ 99.95%

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

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

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

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

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