ส่วนนี้อธิบายการจัดทำดัชนีสำหรับ Cloud Firestore Enterprise Edition Cloud Firestore Enterprise Edition จะไม่สร้างดัชนีใดๆ โดยค่าเริ่มต้น สร้างดัชนีสําหรับการค้นหาที่ใช้บ่อยที่สุดเพื่อปรับปรุงประสิทธิภาพของฐานข้อมูล
ดัชนีมีผลกระทบอย่างมากต่อประสิทธิภาพของฐานข้อมูล หากมีการสร้างดัชนีสำหรับการค้นหา ฐานข้อมูลจะแสดงผลลัพธ์ได้อย่างมีประสิทธิภาพโดยการลดปริมาณข้อมูลที่ต้องสแกนและลดการทำงานที่จำเป็นในการจัดเรียงผลลัพธ์ อย่างไรก็ตาม รายการดัชนีจะเพิ่มค่าใช้จ่ายในการจัดเก็บและปริมาณงาน ที่ทำระหว่างการดำเนินการเขียนในช่องที่ทำดัชนี
ความแตกต่างระหว่างรุ่น
ตารางต่อไปนี้แสดงภาพรวมของความแตกต่างในการจัดทำดัชนีที่สำคัญ ระหว่าง Cloud Firestore Standard Edition กับ Cloud Firestore Enterprise Edition
| ฟีเจอร์ | Cloud Firestore Standard Edition | รุ่น Cloud Firestore Enterprise |
|---|---|---|
| ข้อกำหนดในการจัดทำดัชนี | การค้นหาทั้งหมดต้องใช้ดัชนีในการดำเนินการ โดยทั่วไปแล้ว คำค้นหาจะมีประสิทธิภาพเนื่องจากข้อกำหนดนี้ | ไม่จำเป็นต้องมีดัชนีสำหรับการค้นหา การอ่านที่ไม่ได้จัดทำดัชนีเป็นไปได้ ซึ่งช่วยลดอุปสรรคในการสร้างต้นแบบ |
| การจัดทำดัชนีอัตโนมัติ | โดยค่าเริ่มต้น ระบบจะสร้างดัชนีช่องเดี่ยวโดยอัตโนมัติสำหรับทุกช่องภายในเอกสาร | ไม่มีดัชนีอัตโนมัติ คุณต้องจัดการดัชนีทั้งหมดด้วยตนเอง |
| ความหนาแน่นของดัชนี | เบาบางโดยค่าเริ่มต้น ระบบจะจัดทำดัชนีเอกสารในกลุ่มคอลเล็กชันก็ต่อเมื่อเอกสารมีค่าสำหรับทุกช่องที่จัดทำดัชนี | ไม่ใช่แบบกระจัดกระจายโดยค่าเริ่มต้น ระบบจะจัดทำดัชนีเอกสารทั้งหมดในกลุ่มคอลเล็กชัน
ระบบจะตั้งค่าช่องที่ทำดัชนีซึ่งไม่มีค่าเป็น NULL ลักษณะการทำงาน
สามารถเปลี่ยนแปลงได้ด้วยตัวเลือกดัชนีแบบกระจาย |
| ประเภทดัชนีและตัวเลือกที่รองรับ |
|
|
คำจำกัดความและโครงสร้างของดัชนี
ดัชนีประกอบด้วยข้อมูลต่อไปนี้
- รหัสคอลเล็กชัน
- รายการฟิลด์ในคอลเล็กชันที่ระบุ
- ลำดับจากน้อยไปมากหรือมากไปน้อยสำหรับแต่ละฟิลด์
ดัชนียังเปิดใช้ตัวเลือก sparse หรือ unique ได้ด้วย
การจัดเรียงดัชนี
ลำดับและทิศทางการจัดเรียงของแต่ละฟิลด์จะเป็นตัวกำหนดดัชนีโดยไม่ซ้ำกัน ตัวอย่างเช่น ดัชนีต่อไปนี้เป็นดัชนีที่แตกต่างกัน 2 รายการและไม่สามารถใช้แทนกันได้
| การรวบรวม | ช่อง |
|---|---|
| เมือง | ประเทศ (จากน้อยไปมาก), ประชากร (จากมากไปน้อย) |
| เมือง | ประชากร (จากมากไปน้อย), ประเทศ (จากน้อยไปมาก) |
เมื่อสร้างดัชนีเพื่อรองรับการค้นหา ให้รวมฟิลด์ตามลำดับเดียวกับการค้นหา
ความหนาแน่นของดัชนี
โดยค่าเริ่มต้น รายการดัชนีจะจัดเก็บข้อมูลจากเอกสารทั้งหมดในคอลเล็กชัน ซึ่งเรียกว่าดัชนีแบบไม่กระจัดกระจาย ระบบจะเพิ่มรายการดัชนีสำหรับเอกสารไม่ว่าเอกสารจะมีฟิลด์ใดๆ ที่ระบุไว้ในดัชนีหรือไม่ก็ตาม ระบบจะถือว่าฟิลด์ที่ไม่มีอยู่มีค่า NULL เมื่อสร้างรายการดัชนี หากต้องการเปลี่ยนลักษณะการทำงานนี้ คุณสามารถกำหนดดัชนีเป็นดัชนีแบบกระจัดกระจายได้
ดัชนีแบบกระจัดกระจาย
ดัชนีแบบกระจัดกระจายจะจัดทำดัชนีเฉพาะเอกสารในคอลเล็กชันที่มีค่า (รวมถึงค่า Null) สำหรับฟิลด์ที่จัดทำดัชนีอย่างน้อย 1 รายการ ดัชนีแบบกระจายจะช่วยลดต้นทุนพื้นที่เก็บข้อมูลและเพิ่มประสิทธิภาพได้
ดัชนีที่ไม่ซ้ำกัน
ตั้งค่าตัวเลือกดัชนีที่ไม่ซ้ำกันเพื่อบังคับใช้ค่าที่ไม่ซ้ำกันสำหรับฟิลด์ที่จัดทำดัชนี สำหรับดัชนีในหลายฟิลด์ ค่าผสมแต่ละค่าต้องไม่ซ้ำกัน ในดัชนี ฐานข้อมูลจะปฏิเสธการอัปเดตและการแทรกใดๆ ที่ พยายามสร้างรายการดัชนีที่มีค่าซ้ำ หากข้อมูล ของช่องที่จัดทำดัชนีมีค่าที่ซ้ำกันและคุณพยายาม สร้างดัชนีที่ไม่ซ้ำกัน การสร้างดัชนีจะล้มเหลวพร้อมข้อความแสดงข้อผิดพลาด ในรายละเอียดการดำเนินการ
ฟิลด์ที่ไม่มีในดัชนีที่ไม่ซ้ำกัน
หากคุณแทรกเอกสารที่มีฟิลด์ที่ขาดหายไปสำหรับดัชนีที่ไม่ซ้ำกัน ดัชนีจะตั้งค่า null สำหรับฟิลด์ที่ขาดหายไป รายการดัชนีที่ได้ต้องไม่ซ้ำกัน มิเช่นนั้นการดำเนินการจะล้มเหลว
เช่น หากมีดัชนีนี้
| การรวบรวม | ช่องที่จัดทำดัชนี | ขอบเขตการค้นหา |
|---|---|---|
| เมือง | ชื่อ (จากน้อยไปมาก) | การรวบรวม |
หากคุณเพิ่มเอกสาร {"abbreviation": "LA"} ลงในคอลเล็กชัน ดัชนีที่ไม่ซ้ำกัน
จะสร้างรายการที่มี name ตั้งค่าเป็น null หากคุณพยายามเพิ่ม
เอกสาร{"abbreviation": "NYC"}ในภายหลัง การดำเนินการจะไม่สำเร็จเนื่องจาก
รายการที่ได้สำหรับดัชนีที่ไม่ซ้ำกันจะเหมือนกัน
ลักษณะการทำงานเดียวกันนี้จะมีผลกับดัชนีที่ไม่ซ้ำกันที่มีหลายฟิลด์ด้วย
เมื่อสร้างหรืออัปเดตเอกสาร ระบบจะตั้งค่าฟิลด์ที่ขาดหายไปซึ่งมีการจัดทำดัชนีเป็น null และรายการดัชนีที่ได้ต้องไม่ซ้ำกันในดัชนี
แก้ปัญหาข้อผิดพลาดในการสร้างดัชนี
คุณอาจพบข้อผิดพลาดในการสร้างดัชนีเมื่อจัดการดัชนี การดำเนินการจัดทำดัชนีอาจล้มเหลวหากฐานข้อมูลพบปัญหาเกี่ยวกับข้อมูล การดำเนินการจัดทำดัชนีอาจล้มเหลวเนื่องจากสาเหตุต่อไปนี้
- คุณใช้ดัชนีถึงขีดจำกัดแล้ว เช่น การดำเนินการอาจมีรายการดัชนีต่อเอกสารถึง จำนวนสูงสุดแล้ว หากการสร้างดัชนีล้มเหลว คุณจะเห็นข้อความแสดงข้อผิดพลาด หากยังไม่ถึงขีดจำกัดของดัชนี ให้ลองดำเนินการจัดทำดัชนีอีกครั้ง
- คุณตั้งค่าตัวเลือกดัชนีที่ไม่ซ้ำกันและข้อมูลของช่องที่จัดทำดัชนีจะ สร้างรายการดัชนีที่ซ้ำกัน โปรดนำชุดค่าที่ซ้ำกันออกจากข้อมูลเพื่อดำเนินการต่อ
ขั้นตอนถัดไป
ดูวิธีสร้างและจัดการดัชนี