ขีดจำกัดของฐานข้อมูลเรียลไทม์

ข้อจำกัดในการจัดเก็บและดำเนินการข้อมูลใน Firebase Realtime Database มีดังนี้ หากต้องการขยายขนาดให้เกินขีดจำกัดเหล่านี้, ให้ใช้ฐานข้อมูลหลายรายการ

ทั่วโลก

การดำเนินการ ขีดจำกัด คำอธิบาย
การเชื่อมต่อพร้อมกัน 200,000*

การเชื่อมต่อพร้อมกันเทียบเท่ากับอุปกรณ์เคลื่อนที่ แท็บเบราว์เซอร์ หรือแอปเซิร์ฟเวอร์ 1 รายการที่เชื่อมต่อกับฐานข้อมูล

ซึ่งไม่เหมือนกับจำนวนผู้ใช้ทั้งหมดของแอป เนื่องจากผู้ใช้ไม่ได้เชื่อมต่อพร้อมกันทั้งหมด ตัวอย่างเช่น แอปที่มีผู้ใช้งานรายเดือน 10 ล้านคนมักมีการเชื่อมต่อพร้อมกันน้อยกว่า 200,000 รายการ การเชื่อมต่อพร้อมกันสูงสุดจะขึ้นอยู่กับจำนวนผู้ใช้ทั้งหมดและเวลาเฉลี่ยที่ผู้ใช้ใช้ในแอป

อย่างไรก็ตาม หากต้องการขยายขนาดให้เกินขีดจำกัดนี้ ให้ลอง ใช้ฐานข้อมูลหลายรายการ

*ขีดจำกัดการเชื่อมต่อพร้อมกันของแพ็กเกจ Spark คือ 100 รายการ

การตอบกลับพร้อมกันที่ส่งจากฐานข้อมูลเดียว ~100,000 รายการ/วินาที การตอบกลับรวมถึงการออกอากาศและการดำเนินการอ่านพร้อมกันที่เซิร์ฟเวอร์ส่งจากฐานข้อมูลเดียวในเวลาที่กำหนด ขีดจำกัดนี้หมายถึงแพ็กเก็ตข้อมูลที่แสดงถึงการดำเนินการอ่านหรือออกอากาศแต่ละรายการ รวมถึงการแจ้งเตือนแบบพุชที่ส่งจากฐานข้อมูล คำแนะนำนี้มีไว้สำหรับโหลดที่ต่อเนื่อง แต่ฐานข้อมูลสามารถจัดการกับโหลดที่สูงขึ้นเป็นครั้งคราวได้
จำนวน Cloud Functions ที่ทริกเกอร์โดยการเขียนครั้งเดียว 1,000 รายการ หรือสำหรับ Cloud Functions v2 คือ 500 รายการต่อภูมิภาค แม้ว่าจะไม่มีขีดจำกัดจำนวนการดำเนินการอ่านหรือเขียนที่คุณทริกเกอร์ได้จากฟังก์ชันเดียว แต่การดำเนินการเขียนฐานข้อมูลเดียวจะทริกเกอร์ได้เพียง 1,000 ฟังก์ชัน หรือ 500 ฟังก์ชันต่อภูมิภาคสำหรับ Cloud Functions v2

Cloud Functions จะทริกเกอร์ได้เฉพาะการดำเนินการเขียนเท่านั้น และแต่ละ ฟังก์ชันยังทริกเกอร์การดำเนินการเขียนเพิ่มเติมที่ทริกเกอร์ฟังก์ชันอื่นๆ ได้ (แต่ละฟังก์ชันมีขีดจำกัด 1, 000 ฟังก์ชันหรือ 500 ฟังก์ชันต่อภูมิภาค)

ขนาดของเหตุการณ์เดียวที่ทริกเกอร์โดยการเขียน 1 MB ขนาดของเหตุการณ์ประกอบด้วยค่าต่อไปนี้
  1. ข้อมูลที่มีอยู่ที่ตำแหน่งการเขียน
  2. ค่าการอัปเดตหรือเดลต้าของข้อมูลที่จำเป็นสำหรับการเขียนข้อมูลใหม่ไปยังตำแหน่ง
การดำเนินการเขียนที่มีขนาดใหญ่กว่า 1 MB จะสำเร็จในฐานข้อมูล แต่จะไม่ทริกเกอร์การเรียกใช้ฟังก์ชัน
การโอนข้อมูลไปยัง Cloud Functions 10 MB/วินาทีอย่างต่อเนื่อง อัตราข้อมูลเหตุการณ์ที่ส่งต่อได้ไปยัง Cloud Functions

โครงสร้างข้อมูล

พร็อพเพอร์ตี้ ขีดจำกัด คำอธิบาย
ความลึกสูงสุดของโหนดย่อย 32 แต่ละเส้นทางในโครงสร้างข้อมูลต้องมีความลึกน้อยกว่า 32 ระดับ
ความยาวของคีย์ 768 ไบต์ คีย์จะเข้ารหัส UTF-8 และต้องไม่มีบรรทัดใหม่หรืออักขระต่อไปนี้ คือ:
$ # [ ] / หรืออักขระควบคุม ASCII ใดๆ (0x00 - 0x1F และ 0x7F)
ขนาดสูงสุดของสตริง 10 MB ข้อมูลจะเข้ารหัส UTF-8

การอ่าน

คำอธิบาย ขีดจำกัด หมายเหตุ
ขนาดของการตอบกลับเดียวที่ฐานข้อมูลแสดง 256 MB ขนาดของข้อมูลที่ดาวน์โหลดจากฐานข้อมูลในตำแหน่งเดียวควรมีขนาดน้อยกว่า 256 MB สำหรับการดำเนินการอ่านแต่ละครั้ง

หากต้องการดำเนินการอ่านในตำแหน่งที่ใหญ่ขึ้น ให้ลองใช้ตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้

จำนวนโหนดทั้งหมดในเส้นทางที่มี Listener หรือการค้นหา 75 ล้าน* คุณไม่สามารถฟังหรือค้นหาเส้นทางที่มีโหนดมากกว่า 75 ล้านโหนดรวมกัน แต่คุณยังคงฟังหรือค้นหาโหนดย่อยได้ ลองเจาะลึกลงไปในเส้นทางหรือสร้าง Listener หรือการค้นหาแยกกันสำหรับส่วนที่เฉพาะเจาะจงมากขึ้นของเส้นทาง

*คุณไม่สามารถดูเส้นทางที่มีโหนดทั้งหมดมากกว่า 30,000 โหนดจากเครื่องมือดูข้อมูล ในคอนโซลFirebase

ระยะเวลาที่การค้นหาเดียวสามารถทำงานได้ 15 นาที* การค้นหาเดียวสามารถทำงานได้นานสูงสุด 15 นาทีก่อนที่จะล้มเหลว

*การค้นหาเดียวที่ดำเนินการในคอนโซล Firebase สามารถทำงานได้นานสูงสุด 5 วินาทีก่อนที่จะล้มเหลว

การเขียน

คำอธิบาย ขีดจำกัด หมายเหตุ
อัตราการเขียน 1,000 รายการเขียน/วินาที ขีดจำกัดการดำเนินการเขียนต่อวินาทีในฐานข้อมูลเดียว แม้จะไม่ใช่ขีดจำกัดที่เข้มงวด แต่หากคุณเขียนข้อมูลมากกว่า 1,000 รายการ ต่อวินาทีอย่างต่อเนื่อง ระบบอาจจำกัดอัตรากิจกรรมการเขียนของคุณ
ขนาดของคำขอเขียนเดียวไปยังฐานข้อมูล 256 MB จาก REST API และ 16 MB จาก SDK ข้อมูลทั้งหมดในการดำเนินการเขียนแต่ละครั้งควรมีขนาดน้อยกว่า 256 MB การอัปเดตหลายเส้นทางอยู่ภายใต้ข้อจำกัดด้านขนาดเดียวกัน
ไบต์ที่เขียนแล้ว 64 MB/นาที ไบต์ทั้งหมดที่เขียนผ่านการดำเนินการเขียนพร้อมกันในฐานข้อมูลในเวลาที่กำหนด