เลือกฐานข้อมูล: 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 ขนาดใหญ่ 1 ต้น
  • ข้อมูลที่ไม่ซับซ้อนจะจัดเก็บได้ง่ายมาก
  • ข้อมูลที่ซับซ้อนและมีลำดับชั้นทำให้จัดระเบียบในวงกว้างได้ยากขึ้น

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

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

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

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

การตรวจหาบุคคล

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

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

การค้นหา

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

แนะนำ Cloud Firestore Realtime Database
การค้นหาที่จัดทำดัชนีซึ่งมีการจัดเรียงและการกรองแบบผสม
  • คุณสามารถต่อตัวกรอง และรวมการกรองและการจัดเรียงในพร็อพเพอร์ตี้ไว้ในคำค้นหาเดียวได้
  • การค้นหามีความตื้น โดยจะแสดงเอกสารในกลุ่มคอลเล็กชันหรือกลุ่มคอลเล็กชันที่เฉพาะเจาะจงเท่านั้น และไม่แสดงผลข้อมูลคอลเล็กชันย่อย
  • ข้อความค้นหาต้องแสดงเอกสารทั้งฉบับเสมอ
  • ระบบจะจัดทำดัชนีคำค้นหาโดยค่าเริ่มต้น: ประสิทธิภาพของการค้นหาจะเป็นสัดส่วนกับขนาดของชุดผลลัพธ์ ไม่ใช่ชุดข้อมูล
การค้นหาเชิงลึกที่มีฟีเจอร์การจัดเรียงและการกรองที่จำกัด
  • คำค้นหาสามารถจัดเรียงหรือกรองพร็อพเพอร์ตี้ได้ แต่จะทำทั้ง 2 อย่างไม่ได้
  • คำค้นหาจะมีความลึกโดยค่าเริ่มต้น: คำค้นหาจะแสดงแผนผังย่อยทั้งหมดเสมอ
  • การค้นหาเข้าถึงข้อมูลได้ทุกรายละเอียด ไปจนถึงค่าโหนดใบไม้แต่ละค่าในแผนผัง 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
  • อ่านและเขียนจาก SDK ของเซิร์ฟเวอร์ที่ปลอดภัยโดย Identity and Access Management (IAM)
  • กฎจะไม่เรียงซ้อนกันเว้นแต่คุณจะใช้ไวลด์การ์ด
  • กฎอาจจำกัดการค้นหาได้ หากผลการค้นหาอาจมีข้อมูลที่ผู้ใช้ไม่มีสิทธิ์เข้าถึง การค้นหาทั้งหมดจะล้มเหลว
ภาษาของกฎ Cascading ที่แยกการให้สิทธิ์กับการตรวจสอบความถูกต้อง

ราคา

ทั้ง 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 ได้แล้ว