DynamoDB - ดัชนี
DynamoDB ใช้ดัชนีสำหรับแอตทริบิวต์คีย์หลักเพื่อปรับปรุงการเข้าถึง ช่วยเร่งการเข้าถึงแอปพลิเคชันและการดึงข้อมูลและสนับสนุนประสิทธิภาพที่ดีขึ้นโดยการลดความล่าช้าของแอปพลิเคชัน
ดัชนีทุติยภูมิ
ดัชนีรองมีชุดย่อยแอตทริบิวต์และคีย์สำรอง คุณใช้ผ่านการสืบค้นหรือการสแกนซึ่งกำหนดเป้าหมายดัชนี
เนื้อหาประกอบด้วยคุณลักษณะที่คุณโครงการหรือคัดลอก ในการสร้างคุณกำหนดคีย์สำรองสำหรับดัชนีและแอตทริบิวต์ใด ๆ ที่คุณต้องการฉายในดัชนี จากนั้น DynamoDB จะทำการคัดลอกแอตทริบิวต์ลงในดัชนีรวมถึงแอตทริบิวต์คีย์หลักที่มาจากตาราง หลังจากดำเนินการเหล่านี้แล้วคุณเพียงแค่ใช้แบบสอบถาม / สแกนเหมือนกับการทำงานบนโต๊ะ
DynamoDB จะรักษาดัชนีรองทั้งหมดโดยอัตโนมัติ ในการดำเนินการรายการเช่นการเพิ่มหรือการลบจะอัปเดตดัชนีใด ๆ บนตารางเป้าหมาย
DynamoDB เสนอดัชนีรองสองประเภท -
Global Secondary Index- ดัชนีนี้ประกอบด้วยคีย์พาร์ติชันและคีย์การจัดเรียงซึ่งอาจแตกต่างจากตารางต้นทาง ใช้ป้ายกำกับ "global" เนื่องจากความสามารถในการสืบค้น / สแกนบนดัชนีเพื่อขยายข้อมูลตารางทั้งหมดและบนพาร์ติชันทั้งหมด
Local Secondary Index- ดัชนีนี้แชร์คีย์พาร์ติชันกับตาราง แต่ใช้คีย์การจัดเรียงอื่น ลักษณะ "โลคัล" เป็นผลมาจากพาร์ติชันทั้งหมดที่กำหนดขอบเขตไปยังพาร์ติชันตารางที่มีค่าคีย์พาร์ติชันเหมือนกัน
ประเภทของดัชนีที่ดีที่สุดที่จะใช้ขึ้นอยู่กับความต้องการของแอปพลิเคชัน พิจารณาความแตกต่างระหว่างทั้งสองที่นำเสนอในตารางต่อไปนี้ -
คุณภาพ | ดัชนีทุติยภูมิทั่วโลก | ดัชนีทุติยภูมิในท้องถิ่น |
---|---|---|
คีย์สคีมา | ใช้คีย์หลักแบบง่ายหรือแบบผสม | จะใช้คีย์หลักแบบผสมเสมอ |
คุณสมบัติที่สำคัญ | คีย์พาร์ติชันดัชนีและคีย์การจัดเรียงสามารถประกอบด้วยสตริงตัวเลขหรือแอตทริบิวต์ตารางไบนารี | คีย์พาร์ติชันของดัชนีคือแอ็ตทริบิวต์ที่แชร์กับคีย์พาร์ติชันตาราง คีย์การจัดเรียงสามารถเป็นแอตทริบิวต์สตริงตัวเลขหรือตารางไบนารี |
ขนาด จำกัด ต่อค่าคีย์พาร์ติชัน | ไม่ จำกัด ขนาด | มันกำหนดขีด จำกัด สูงสุด 10GB สำหรับขนาดรวมของรายการที่จัดทำดัชนีที่เกี่ยวข้องกับค่าคีย์พาร์ติชัน |
การดำเนินการดัชนีออนไลน์ | คุณสามารถวางไข่ในการสร้างตารางเพิ่มในตารางที่มีอยู่หรือลบตารางที่มีอยู่ | คุณต้องสร้างเมื่อสร้างตาราง แต่ไม่สามารถลบหรือเพิ่มลงในตารางที่มีอยู่ได้ |
แบบสอบถาม | ช่วยให้การสืบค้นครอบคลุมทั้งตารางและทุกพาร์ติชัน | พวกเขากล่าวถึงพาร์ติชันเดียวผ่านค่าคีย์พาร์ติชันที่ให้ไว้ในแบบสอบถาม |
ความสม่ำเสมอ | แบบสอบถามของดัชนีเหล่านี้เสนอตัวเลือกที่สอดคล้องกันในที่สุดเท่านั้น | ข้อความค้นหาเหล่านี้มีตัวเลือกที่สอดคล้องหรือสอดคล้องกันอย่างมากในที่สุด |
ต้นทุนปริมาณงาน | รวมถึงการตั้งค่าปริมาณงานสำหรับการอ่านและเขียน คิวรี / สแกนใช้ความจุจากดัชนีไม่ใช่ตารางซึ่งใช้กับการอัปเดตการเขียนตารางด้วย | แบบสอบถาม / สแกนใช้ความสามารถในการอ่านตาราง ตารางเขียนอัพเดตดัชนีภายในเครื่องและใช้หน่วยความจุของตาราง |
การฉายภาพ | การสืบค้น / การสแกนสามารถร้องขอแอตทริบิวต์ที่คาดการณ์ไว้ในดัชนีเท่านั้นโดยจะไม่มีการเรียกคืนแอตทริบิวต์ของตาราง | การสืบค้น / การสแกนสามารถขอแอตทริบิวต์ที่ไม่ได้คาดการณ์ไว้ นอกจากนี้การดึงข้อมูลโดยอัตโนมัติเกิดขึ้น |
เมื่อสร้างตารางหลายตารางด้วยดัชนีรองให้ทำตามลำดับ หมายถึงสร้างตารางและรอให้ถึงสถานะ ACTIVE ก่อนสร้างใหม่และรออีกครั้ง DynamoDB ไม่อนุญาตให้สร้างพร้อมกัน
ดัชนีทุติยภูมิแต่ละรายการต้องการข้อกำหนดบางประการ -
Type - ระบุท้องถิ่นหรือทั่วโลก
Name - ใช้กฎการตั้งชื่อเหมือนกับตาราง
Key Schema - อนุญาตเฉพาะสตริงระดับบนสุดตัวเลขหรือประเภทไบนารีเท่านั้นโดยประเภทดัชนีจะเป็นตัวกำหนดข้อกำหนดอื่น ๆ
Attributes for Projection - DynamoDB จะฉายภาพโดยอัตโนมัติและอนุญาตให้ใช้ข้อมูลประเภทใดก็ได้
Throughput - ระบุความสามารถในการอ่าน / เขียนสำหรับดัชนีทุติยภูมิทั่วโลก
ขีด จำกัด สำหรับดัชนียังคงอยู่ที่ 5 global และ 5 local ต่อตาราง
คุณสามารถเข้าถึงข้อมูลโดยละเอียดเกี่ยวกับดัชนีด้วย DescribeTable. ส่งคืนชื่อขนาดและจำนวนรายการ
Note - ค่าเหล่านี้จะอัปเดตทุกๆ 6 ชั่วโมง
ในแบบสอบถามหรือการสแกนที่ใช้เพื่อเข้าถึงข้อมูลดัชนีให้ระบุชื่อตารางและดัชนีแอตทริบิวต์ที่ต้องการสำหรับผลลัพธ์และคำสั่งเงื่อนไขใด ๆ DynamoDB เสนอตัวเลือกในการส่งคืนผลลัพธ์ในลำดับจากน้อยไปมากหรือมากไปหาน้อย
Note - การลบตารางจะลบดัชนีทั้งหมดด้วย