این بخش، نمایهسازی برای نسخه Cloud Firestore Enterprise را شرح میدهد. نسخه Cloud Firestore Enterprise به طور پیشفرض هیچ نمایهای ایجاد نمیکند. برای بهبود عملکرد پایگاه داده، نمایههایی را برای رایجترین کوئریهای خود ایجاد کنید.
شاخصها تأثیر زیادی بر عملکرد یک پایگاه داده دارند. اگر برای یک پرسوجو شاخصی وجود داشته باشد، پایگاه داده میتواند با کاهش مقدار دادههایی که باید اسکن شوند و کاهش کار مورد نیاز برای مرتبسازی نتایج، نتایج را به طور مؤثر بازگرداند. با این حال، ورودیهای شاخص، هزینههای ذخیرهسازی و میزان کار انجام شده در طول عملیات نوشتن روی فیلدهای شاخصگذاری شده را افزایش میدهند.
تفاوتهای بین نسخهها
جدول زیر مروری بر تفاوتهای عمدهی ایندکسگذاری بین نسخه استاندارد Cloud Firestore و نسخه سازمانی Cloud Firestore ارائه میدهد.
| ویژگی | نسخه استاندارد کلود فایر استور | نسخه سازمانی کلود فایراستور |
|---|---|---|
| الزام نمایهسازی | همه کوئریها برای اجرا به ایندکس نیاز دارند. کوئریها عموماً به دلیل این نیاز، عملکرد خوبی دارند. | برای کوئریها نیازی به ایندکس نیست. خواندن بدون ایندکس امکانپذیر است و مانع نمونهسازی اولیه را از بین میبرد. |
| نمایهسازی خودکار | به طور پیشفرض، شاخصهای تک فیلدی به طور خودکار برای همه فیلدهای درون اسناد ایجاد میشوند. | بدون ایندکس خودکار. شما باید تمام ایندکسها را به صورت دستی مدیریت کنید. |
| چگالی شاخص | به طور پیشفرض پراکنده. یک سند در یک گروه مجموعه فقط در صورتی فهرستبندی میشود که سند حاوی مقداری برای هر فیلد فهرستبندی شده باشد. | به طور پیشفرض غیر پراکنده. تمام اسناد موجود در گروه مجموعه، فهرستبندی شدهاند. فیلدهای فهرستبندی شده بدون مقدار، روی NULL تنظیم شدهاند. رفتار را میتوان با گزینه فهرست پراکنده تغییر داد. |
| انواع و گزینههای شاخص پشتیبانیشده |
|
|
تعریف و ساختار شاخص
یک شاخص شامل موارد زیر است:
- شناسه مجموعه
- فهرستی از فیلدهای موجود در مجموعه داده شده
- یک ترتیب، صعودی یا نزولی، برای هر فیلد
یک شاخص همچنین میتواند گزینههای پراکنده یا منحصر به فرد را فعال کند.
مرتبسازی شاخصها
ترتیب و جهت مرتبسازی هر فیلد، شاخص را به طور منحصر به فرد تعریف میکند. برای مثال، شاخصهای زیر دو شاخص مجزا هستند و قابل تعویض نیستند:
| مجموعه | فیلدها |
|---|---|
| شهرها | کشور (صعودی)، جمعیت (نزولی) |
| شهرها | جمعیت (نزولی)، کشور (صعودی)، |
هنگام ایجاد یک فهرست برای پشتیبانی از یک پرسوجو، فیلدها را به همان ترتیب پرسوجوی خود وارد کنید.
چگالی شاخص
به طور پیشفرض، ورودیهای فهرست، دادهها را از تمام اسناد موجود در یک مجموعه ذخیره میکنند. این به عنوان یک فهرست غیر پراکنده شناخته میشود. یک ورودی فهرست برای یک سند، صرف نظر از اینکه آیا سند حاوی هر یک از فیلدهای مشخص شده در فهرست است یا خیر، اضافه میشود. فیلدهای غیر موجود هنگام تولید ورودیهای فهرست، به عنوان دارای مقدار NULL در نظر گرفته میشوند. برای تغییر این رفتار، میتوانید فهرست را به عنوان یک فهرست پراکنده تعریف کنید.
شاخصهای پراکنده
یک شاخص پراکنده فقط اسنادی را در مجموعه فهرست میکند که حداقل یکی از فیلدهای فهرستبندی شده حاوی مقداری (از جمله تهی) باشند. یک شاخص پراکنده هزینههای ذخیرهسازی را کاهش میدهد و میتواند عملکرد را بهبود بخشد.
شاخصهای منحصر به فرد
گزینه شاخص منحصر به فرد را برای اعمال مقادیر منحصر به فرد برای فیلدهای شاخص گذاری شده تنظیم کنید. برای شاخص گذاری روی چندین فیلد، هر ترکیبی از مقادیر باید در سراسر شاخص منحصر به فرد باشد. پایگاه داده هرگونه عملیات بروزرسانی و درج را که سعی در ایجاد ورودیهای شاخص با مقادیر تکراری دارند، رد میکند. اگر دادههای فیلدهای شاخص گذاری شده حاوی مقادیر تکراری باشند و شما سعی در ایجاد یک شاخص منحصر به فرد داشته باشید، ساخت شاخص با یک پیام خطا در جزئیات عملیات شکست میخورد.
فیلدهای موجود در یک فهرست منحصر به فرد وجود ندارد
اگر سندی را با فیلدهای گمشده برای شاخص منحصر به فرد وارد کنید، شاخص برای فیلدهای گمشده مقادیر null تعیین میکند. ورودی شاخص حاصل باید منحصر به فرد باشد در غیر این صورت عملیات با شکست مواجه میشود.
مثلاً با این شاخص:
| مجموعه | فیلدهای ایندکس شده | دامنه پرس و جو |
|---|---|---|
| شهرها | نام (صعودی) | مجموعه |
اگر سند {"abbreviation": "LA"} را به مجموعه اضافه کنید، شاخص منحصر به فرد یک ورودی با name null ایجاد میکند. اگر سپس سعی کنید سند {"abbreviation": "NYC"} را اضافه کنید، عملیات با شکست مواجه میشود زیرا ورودی حاصل برای شاخص منحصر به فرد یکسان است.
همین رفتار در مورد شاخصهای منحصر به فرد با چندین فیلد نیز صدق میکند. هنگام ایجاد یا بهروزرسانی یک سند، فیلدهای شاخصگذاری نشده روی null تنظیم میشوند و ورودی شاخص حاصل باید در شاخص منحصر به فرد باشد.
عیبیابی خطاهای ساخت ایندکس
ممکن است هنگام مدیریت ایندکسهای خود با خطاهای ساخت ایندکس مواجه شوید. اگر پایگاه داده با مشکلی در دادهها مواجه شود، عملیات ایندکسگذاری میتواند با شکست مواجه شود. عملیات ایندکسگذاری میتواند به دلایل زیر با شکست مواجه شود:
- شما به محدودیت فهرستبندی رسیدهاید. برای مثال، ممکن است عملیات به حداکثر تعداد ورودیهای فهرستبندی در هر سند رسیده باشد. اگر ایجاد فهرست با شکست مواجه شود، پیام خطایی مشاهده خواهید کرد. اگر به محدودیت فهرستبندی نرسیدهاید، عملیات فهرستبندی را دوباره امتحان کنید.
- شما گزینه شاخص منحصر به فرد را تنظیم میکنید و دادههای فیلدهای شاخصگذاری شده، ورودیهای شاخص تکراری ایجاد میکنند. برای ادامه، ترکیبات تکراری مقادیر را از دادهها حذف کنید.
قدم بعدی چیست؟
یاد بگیرید که چگونه ایندکسها را ایجاد و مدیریت کنید .