فقط مربوط به Cloud Firestore Enterprise edition. |
این صفحه نمایه سازی برای Cloud Firestore با سازگاری MongoDB را شرح می دهد. Cloud Firestore با سازگاری MongoDB هیچ شاخصی را به طور پیش فرض ایجاد نمی کند. برای بهبود عملکرد پایگاه داده، نمایه هایی را برای پرکاربردترین پرس و جوهای خود ایجاد کنید.
شاخص ها تأثیر زیادی بر عملکرد یک پایگاه داده دارند. اگر نمایه ای برای یک پرس و جو وجود داشته باشد، پایگاه داده می تواند با کاهش میزان داده هایی که باید اسکن شوند و کار مورد نیاز برای مرتب سازی نتایج، نتایج را به طور موثر برگرداند. با این حال، ورودیهای فهرست، هزینههای ذخیرهسازی و میزان کار انجام شده را در طول عملیات نوشتن روی فیلدهای فهرستشده افزایش میدهند.
تعریف و ساختار شاخص
یک شاخص شامل موارد زیر است:
- شناسه مجموعه
- لیستی از فیلدها در مجموعه داده شده
- یک ترتیب، صعودی یا نزولی، برای هر فیلد
یک نمایه همچنین می تواند گزینه های پراکنده ، چند کلیدی یا منحصر به فرد را فعال کند.
ترتیب فهرست
ترتیب و جهت مرتب سازی هر فیلد به طور منحصر به فردی شاخص را مشخص می کند. به عنوان مثال، شاخص های زیر دو شاخص مجزا هستند و قابل تعویض نیستند:
مجموعه | فیلدها |
---|---|
شهرها | کشور (صعودی)، جمعیت (نزولی) |
شهرها | جمعیت (نزولی)، کشور (صعودی)، |
هنگام ایجاد یک نمایه برای پشتیبانی از یک پرس و جو، فیلدها را به همان ترتیب درخواست خود وارد کنید.
چگالی شاخص
بهطور پیشفرض، ورودیهای فهرست، دادههای همه اسناد یک مجموعه را ذخیره میکنند. این به عنوان یک شاخص غیر پراکنده شناخته می شود. بدون در نظر گرفتن اینکه سند حاوی هر یک از فیلدهای مشخص شده در فهرست باشد، یک ورودی فهرست برای یک سند اضافه می شود. فیلدهای موجود در هنگام ایجاد ورودی های فهرست به عنوان دارای یک مقدار NULL در نظر گرفته می شوند. برای تغییر این رفتار، می توانید شاخص را به عنوان یک شاخص پراکنده تعریف کنید.
شاخص های پراکنده
یک نمایه پراکنده تنها اسناد موجود در مجموعه را نمایه می کند که دارای مقدار (از جمله null) برای حداقل یکی از فیلدهای نمایه شده هستند. یک شاخص پراکنده هزینه های ذخیره سازی را کاهش می دهد و می تواند عملکرد را بهبود بخشد.
شاخص های چند کلیدی برای مقادیر آرایه
اگر در فیلدی که حاوی مقادیر آرایه است، فهرستی ایجاد میکنید، باید یک فهرست چند کلیدی ایجاد کنید. یک شاخص معمولی نمی تواند مقادیر آرایه را فهرست کند. یک نمایه چند کلیدی تا یک فیلد آرایه را در تعریف شاخص پشتیبانی می کند و می تواند برای عملیاتی که مقادیر آرایه را طی می کند استفاده شود.
فقط در صورتی از شاخص های چند کلیدی استفاده کنید که می دانید باید مقادیر آرایه را فهرست بندی کنید. نمایه های معمولی هنگام پردازش یک پرس و جو دارای مزایایی هستند. به عنوان مثال، شاخصهای معمولی میتوانند مقادیر درون یک محدوده را به طور موثرتری فیلتر کنند.
شرایط زیر هنگام کار با مقادیر آرایه و شاخص های چند کلیدی منجر به خطا می شود:
- یک عملیات سعی می کند یک مقدار آرایه را به فیلدی که توسط یک شاخص معمولی نمایه شده است اضافه کند. برای افزودن مقدار آرایه، باید شاخصهای معمولی موجود در آن فیلد را حذف کنید و آنها را بهعنوان شاخصهای چند کلیدی دوباره ایجاد کنید.
- شما سعی می کنید یک شاخص منظم در فیلدی ایجاد کنید که حاوی مقدار آرایه است. یا باید یک شاخص چند کلیدی ایجاد کنید یا مقادیر آرایه را حذف کنید.
- یک عملیات سعی می کند چندین فیلد را با مقادیر آرایه نمایه کند. شما نمی توانید بیش از یک فیلد با مقدار آرایه در یک شاخص چند کلیدی داشته باشید. برای ادامه، مدل داده یا تعاریف شاخص خود را تغییر دهید.
- شما سعی می کنید یک فهرست چند کلیدی ایجاد کنید که در آن دو مسیر فیلد یک پیشوند مشترک مانند
users.posts
وusers.zip
به اشتراک بگذارند.
شاخص های منحصر به فرد
گزینه منحصر به فرد فهرست را برای اعمال مقادیر منحصر به فرد برای فیلدهای نمایه شده تنظیم کنید. برای نمایههای چند فیلد، هر ترکیبی از مقادیر باید در سراسر نمایه منحصر به فرد باشد. پایگاه داده هرگونه عملیات به روز رسانی و درج را که سعی در ایجاد ورودی های فهرست با مقادیر تکراری داشته باشد رد می کند. اگر دادههای فیلدهای نمایهسازی شده حاوی مقادیر تکراری باشد و شما سعی کنید یک فهرست منحصر به فرد ایجاد کنید، در این صورت ساخت ایندکس با یک پیام خطا در جزئیات عملیات شکست میخورد.
فیلدهای موجود در یک نمایه منحصر به فرد
اگر سندی را با فیلدهای از دست رفته برای فهرست یکتا وارد کنید، ایندکس مقادیر null
را برای فیلدهای از دست رفته تعیین می کند. ورودی فهرست به دست آمده باید منحصر به فرد باشد یا عملیات با شکست مواجه شود.
برای مثال با این شاخص:
db.cities.createIndex( { "name": 1 }, { unique: true } )
اگر سند {"abbreviation": "LA"}
را به مجموعه اضافه کنید، ایندکس یکتا ورودی با name
تنظیم شده روی null
ایجاد می کند. اگر سپس سعی کنید سند {"abbreviation": "NYC"}
را اضافه کنید، عملیات با شکست مواجه می شود زیرا ورودی به دست آمده برای فهرست یکتا یکسان است.
همین رفتار برای نمایه های منحصر به فرد با چندین فیلد اعمال می شود. هنگام ایجاد یا به روز رسانی یک سند، فیلدهای نمایه شده از دست رفته روی null
تنظیم می شوند و ورودی فهرست حاصل باید در فهرست منحصر به فرد باشد.
عیب یابی خطاهای ساخت ایندکس
ممکن است هنگام مدیریت نمایه های خود با خطاهای ایجاد نمایه مواجه شوید. اگر پایگاه داده با مشکلی در داده ها مواجه شود، عملیات نمایه سازی ممکن است با شکست مواجه شود. عملیات نمایه سازی ممکن است به دلایل زیر با شکست مواجه شود:
- شما به حد شاخص رسیده اید. به عنوان مثال، ممکن است عملیات به حداکثر تعداد ورودی های فهرست در هر سند رسیده باشد. اگر ایجاد نمایه ناموفق باشد، یک پیام خطا مشاهده می کنید. اگر به حد شاخص نرسیدهاید، عملیات فهرست را دوباره امتحان کنید.
- یک فهرست چند کلیدی مورد نیاز است. حداقل یکی از فیلدهای نمایه شده حاوی مقدار آرایه است. برای ادامه، باید یا از یک شاخص چند کلیدی استفاده کنید یا مقادیر آرایه را حذف کنید.
- یک عملیات سعی می کند چندین فیلد را با مقادیر آرایه نمایه کند. شما نمی توانید بیش از یک فیلد با مقدار آرایه در یک شاخص چند کلیدی داشته باشید. برای ادامه، مدل داده یا تعاریف شاخص خود را تغییر دهید.
- شما گزینه فهرست یکتا را تنظیم می کنید و داده های فیلدهای نمایه شده، ورودی های فهرست تکراری ایجاد می کنند. برای ادامه، ترکیب های تکراری مقادیر را از داده ها حذف کنید.
بعدش چی
- نحوه ایجاد و مدیریت فهرست ها را بیاموزید