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

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

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

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

มีสิ่งสำคัญอื่นๆ ที่ควรพิจารณาอีกไหม

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

โมเดลข้อมูล

ทั้ง Realtime Database และ Cloud Firestore เป็นฐานข้อมูล NoSQL

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

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

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

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

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

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

Cloud Firestore [ แนะนำ ] Realtime Database
การสนับสนุนแบบออฟไลน์สำหรับไคลเอ็นต์ Apple, Android และเว็บ การสนับสนุนแบบออฟไลน์สำหรับไคลเอ็นต์ Apple และ Android

การมีบุคคลอยู่

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

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

การค้นหา

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

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

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

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

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

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

ระยะเวลาทำงาน

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

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

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

ความปลอดภัย

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

ราคา

ทั้ง 2 โซลูชันพร้อมให้บริการในแพ็กเกจราคา Spark และ Blaze

Cloud Firestore [ แนะนำ ] Realtime Database
การเรียกเก็บเงินจะขึ้นอยู่กับการดำเนินการที่ทำในฐานข้อมูล (อ่าน เขียน ลบ) เป็นหลัก และมีอัตราค่าบริการที่ต่ำกว่าสำหรับแบนด์วิดท์และพื้นที่เก็บข้อมูล

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

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

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

อ่านเพิ่มเติมเกี่ยวกับแพ็กเกจราคาของ Realtime Database

การใช้ Cloud Firestore และ Realtime Database

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

ดูข้อมูลเพิ่มเติมเกี่ยวกับฟีเจอร์ที่มีในทั้ง Realtime Database และ Cloud Firestore

พร้อมที่จะเลือกฐานข้อมูลแล้วใช่ไหม

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