เลือกฐานข้อมูล: 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 Realtime Database สามารถบันทึกสถานะการเชื่อมต่อไคลเอ็นต์และให้ข้อมูลอัปเดตได้ ทุกครั้งที่สถานะการเชื่อมต่อของไคลเอ็นต์เปลี่ยนไป

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

การค้นหา

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

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

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

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

ความเสถียรและประสิทธิภาพ

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

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

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

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