عملکرد بهترین شیوه ها: نمایه سازی

ساخت وبلاگ

به سومین سری از پست های وبلاگ ما خوش آمدید که شامل بهترین عملکرد برای MongoDB است.

در این سری ، ما برای دستیابی به عملکرد در مقیاس در تعدادی از ابعاد مهم ، ملاحظات کلیدی را پوشش می دهیم ، از جمله:

  • (مجموعه کاری)
  • نمایه سازی ، که امروز ما آن را پوشش خواهیم داد
  • توری
  • معاملات و نگرانی ها را بخوانید/بنویسید
  • پیکربندی سخت افزار و سیستم عامل
  • معیار

با داشتن هر دو کار برای چند فروشنده مختلف بانک اطلاعاتی در طی 15 سال گذشته ، با اطمینان می توان گفت که عدم تعریف شاخص های مناسب ، شماره یک عملکرد شماره یک است که تیم های پشتیبانی فنی باید با کاربران بپردازند.

بنابراین ما باید آن را به درستی بدست آوریم ... .. بهترین روشها برای کمک به شما وجود دارد.

شاخص ها در MongoDB

در هر بانک اطلاعاتی ، ایندکس ها از اجرای کارآمد نمایش داده ها پشتیبانی می کنند. بدون آنها ، پایگاه داده باید هر سندی را در یک مجموعه یا جدول اسکن کند تا مواردی را که با بیانیه پرس و جو مطابقت دارند انتخاب کنند. اگر یک شاخص مناسب برای یک پرس و جو وجود داشته باشد ، پایگاه داده می تواند از این فهرست برای محدود کردن تعداد اسنادی که باید بازرسی کند استفاده کند.

MongoDB طیف گسترده ای از انواع و ویژگی های شاخص را با سفارشات مرتب سازی خاص زبان برای پشتیبانی از الگوهای دسترسی پیچیده به داده های شما ارائه می دهد. شاخص های MongoDB را می توان برای ایجاد الزامات برنامه در حال تحول و الگوهای پرس و جو در صورت تقاضا ایجاد و حذف کرد و می تواند در هر زمینه ای در اسناد شما اعلام شود ، از جمله زمینه هایی که در آرایه ها قرار دارند.

بنابراین بیایید نحوه استفاده بهترین استفاده از شاخص ها را در MongoDB پوشش دهیم.

از شاخص های مرکب استفاده کنید

شاخص های مرکب شاخص هایی هستند که از چندین زمینه مختلف تشکیل شده اند. به عنوان مثال ، به جای داشتن یک فهرست در "نام خانوادگی" و دیگری در "نام" ، به طور معمول کارآمدترین کارآیی است که اگر در مقابل هر دو نام سؤال کنید ، شامل "نام خانوادگی" و "نام" باشد. بشرشاخص مرکب ما هنوز هم می تواند برای فیلتر کردن نمایش داده هایی که فقط نام خانوادگی را مشخص می کند ، استفاده شود.

قانون ESR را دنبال کنید

برای شاخص های مرکب ، این قانون انگشت شست در تصمیم گیری در مورد ترتیب زمینه ها در فهرست مفید است:

  • ابتدا آن قسمت هایی را اضافه کنید که در آن نمایش داده شدگان برابری اجرا می شوند.
  • زمینه های بعدی که باید نمایه شوند باید ترتیب مرتب سازی پرس و جو را منعکس کنند.
  • آخرین قسمت ها دامنه داده های قابل دسترسی را نشان می دهد.

در صورت امکان از پرس و جوهای تحت پوشش استفاده کنید

پرس و جوهای تحت پوشش نتایج حاصل از یک شاخص را مستقیماً بدون دسترسی به اسناد منبع باز می گردانند و بنابراین بسیار کارآمد هستند.

برای اینکه یک پرس و جو تمام زمینه های مورد نیاز برای فیلتر ، مرتب سازی و/یا بازگشت به مشتری را تحت پوشش قرار دهد ، باید در یک فهرست حضور داشته باشد. برای تعیین اینکه آیا یک پرس و جو یک پرس و جو تحت پوشش است ، از روش توضیح () استفاده کنید. اگر خروجی توضیح () TotalDocSexamined را به عنوان 0 نشان دهد ، این نشان می دهد که پرس و جو توسط یک شاخص پوشانده شده است. برای توضیح نتایج بیشتر در مستندات بخوانید.

یک Gotcha مشترک هنگام تلاش برای دستیابی به نمایش داده های تحت پوشش این است که قسمت _id همیشه به طور پیش فرض بازگردانده می شود. شما باید صریحاً آن را از نتایج پرس و جو خارج کنید ، یا آن را به فهرست اضافه کنید.

در خوشه های Sharded ، MongoDB در داخل نیاز به دسترسی به زمینه های کلید Shard دارد. این بدان معنی است که نمایش داده های تحت پوشش فقط در شرایطی امکان پذیر است که کلید Shard بخشی از فهرست باشد. معمولاً انجام این کار به هر حال ایده خوبی است.

هنگام در نظر گرفتن شاخص ها در زمینه های کمتری از کاردینال ، از احتیاط استفاده کنید

نمایش داده شد در زمینه هایی با تعداد کمی از مقادیر منحصر به فرد (کاردینال بودن پایین) می تواند مجموعه های نتیجه بزرگی را برگرداند. شاخص های مرکب ممکن است شامل زمینه هایی با کاردینال بودن پایین باشد ، اما مقدار زمینه های ترکیبی باید از کاردینال بودن بالایی برخوردار باشد.

فهرست های غیر ضروری را از بین ببرید

ایندکس ها دارای منابع فشرده هستند: حتی با فشرده سازی در موتور ذخیره سازی MongoDB Wiredtiger ، آنها رام و دیسک مصرف می کنند. با به روزرسانی قسمت ها ، باید شاخص های مرتبط حفظ شوند و CPU اضافی و دیسک I/O را تحمل می کنند.

MongoDB ابزاری را برای کمک به شما در درک استفاده از فهرست فراهم می کند ، که بعداً در این پست پوشش خواهیم داد.

شاخص های Wildcard جایگزینی برای برنامه ریزی شاخص مبتنی بر بار کار نیستند

برای بارهای کاری با بسیاری از الگوهای پرس و جو ad-hoc یا ساختار اسناد بسیار چند شکل ، شاخص های کارت وحشی انعطاف پذیری بیشتری به شما می دهند. می توانید فیلتر را تعریف کنید که به طور خودکار تمام زمینه های تطبیق ، زیرمجموعه ها و آرایه ها را در یک مجموعه فهرست بندی کند.

مانند هر شاخص ، آنها همچنین باید ذخیره و نگهداری شوند ، بنابراین سربار را به پایگاه داده اضافه می کنند. اگر الگوهای پرس و جو برنامه شما از قبل شناخته شده است ، پس باید از فهرست های انتخابی تری در زمینه های خاص دسترسی به نمایش داده ها استفاده کنید.

برای مطابقت با کلمات در یک قسمت از جستجوی متن استفاده کنید

شاخص های منظم برای تطبیق کل مقدار یک میدان مفید هستند. اگر فقط می خواهید در یک زمینه با متن زیادی با یک کلمه خاص مطابقت داشته باشید ، از یک فهرست متن استفاده کنید.

اگر MongoDB را در سرویس Atlas اجرا می کنید ، از جستجوی متن کامل ATLAS استفاده کنید که یک شاخص Lucene کاملاً مدیریت شده با پایگاه داده MongoDB را ارائه می دهد. FTS عملکرد بالاتری و انعطاف پذیری بیشتری برای فیلتر ، رتبه بندی و مرتب سازی از طریق پایگاه داده خود فراهم می کند تا سریعترین نتایج را برای کاربران خود به سرعت برساند.

از فهرست های جزئی استفاده کنید

اندازه و عملکرد سربار شاخص ها را تنها با شامل اسنادی که از طریق فهرست به آنها دسترسی پیدا می کنند ، کاهش دهید. به عنوان مثال ، یک شاخص جزئی در قسمت OrderID ایجاد کنید که فقط شامل اسناد سفارش با یک دستورالعمل "در حال پیشرفت" باشد ، یا فقط قسمت ایمیل را برای اسنادی که در آن وجود دارد ، فهرست بندی می کند.

از فهرست های چند کلید برای آرایه های پرس و جو استفاده کنید

اگر الگوهای پرس و جو شما نیاز به دسترسی به عناصر آرایه فردی دارید ، از یک فهرست چند کلید استفاده کنید. MongoDB یک کلید شاخص برای هر عنصر در آرایه ایجاد می کند و می تواند بر روی آرایه هایی ساخته شود که هم مقادیر مقیاس پذیر و هم اسناد تو در تو را در خود جای داده است.

از عبارات منظم که لنگر و ریشه ای باقی نمانده است خودداری کنید

شاخص ها با ارزش سفارش می شوند. کارتهای وحشی پیشرو ناکارآمد هستند و ممکن است منجر به اسکن کامل شاخص شود. در صورت وجود شخصیت های پیشرو به اندازه کافی در بیان ، کارتهای وحشی دنباله دار می توانند کارآمد باشند.

از عبارات منظم غیر حساس به پرونده خودداری کنید

اگر تنها دلیل استفاده از regex ، عدم حساسیت مورد است ، به جای آن از یک شاخص غیر حساس استفاده کنید ، زیرا سریعتر هستند.

از بهینه سازی شاخص موجود در موتور ذخیره سازی Wiredtiger استفاده کنید

اگر MongoDB خود را مدیریت می کنید ، می توانید به صورت اختیاری شاخص ها را بر روی حجم جداگانه خود قرار دهید و امکان پیگیری سریعتر دیسک و مشاجره پایین تر را فراهم می کند. برای اطلاعات بیشتر به گزینه های Wiredtiger مراجعه کنید.

از طرح توضیح استفاده کنید

ما استفاده از برنامه توضیح MongoDB را در الگوهای پرس و جو قبلی و پست پروفایل پوشش دادیم و این بهترین ابزار برای بررسی پوشش شاخص برای نمایش داده های فردی است.

با استفاده از طرح توضیح ، MongoDB ابزارهای تجسم را برای کمک به بهبود بیشتر شاخص های شما فراهم می کند ، و این توصیه های هوشمند و خودکار را ارائه می دهد که در آن فهرست ها را اضافه می کنند.

پوشش فهرست را با MongoDB Compass و Atlas Data Explorer تجسم کنید

به عنوان GUI رایگان برای MongoDB ، قطب نما ویژگی های بسیاری را برای کمک به شما در بهینه سازی عملکرد پرس و جو ، از جمله کاوش در طرحواره خود و تجسم پرس و جو برنامه ها ارائه می دهد - دو حوزه که قبلاً در این سری پوشیده شده بودند.

برگه Indexes in Compass ابزاری دیگر به زرادخانه شما اضافه می کند. این فهرست فهرست های موجود را برای یک مجموعه ، گزارش نام و کلیدهای شاخص ، به همراه نوع ، اندازه و هر ویژگی خاص آن را نشان می دهد. از طریق برگه Index همچنین می توانید در صورت لزوم شاخص ها را اضافه و رها کنید.

Managing indexes with MongoDB Compass

یک ویژگی بسیار مفید ، استفاده از فهرست است که به شما نشان می دهد که چند بار از یک فهرست استفاده شده است. داشتن شاخص های بیش از حد می تواند تقریباً به عملکرد شما آسیب برساند ، و این ویژگی به ویژه در شناسایی و حذف شاخص هایی که مورد استفاده قرار نمی گیرند ، بسیار ارزشمند است. این به شما کمک می کند تا فضای تنظیم کار را آزاد کنید و از سربار پایگاه داده ای که ناشی از حفظ شاخص است ، حذف کنید.

اگر در سرویس اطلس کاملاً مدیریت شده ما MongoDB را اجرا می کنید ، مشاهده شاخص ها در Data Explorer عملکرد مشابهی با قطب نما را به شما می دهد ، بدون اینکه بخواهید با یک ابزار جداگانه به پایگاه داده خود متصل شوید.

همچنین می توانید آمار شاخص را با استفاده از مرحله خط لوله جمع آوری $ indexstats بازیابی کنید.

توصیه های شاخص خودکار

حتی با وجود همه تله متری ارائه شده توسط ابزارهای MongoDB ، شما هنوز هم وظیفه کشیدن و تجزیه و تحلیل داده های مورد نیاز را برای تصمیم گیری در مورد کدام شاخص ها برای اضافه کردن دارید.

آستانه پرس و جوهای آهسته بر اساس میانگین زمان عملیات در خوشه شما متفاوت است تا توصیه های مربوط به حجم کار شما را ارائه دهد.

شاخص های توصیه شده با نمایش داده های نمونه همراه هستند ، که توسط شکل پرس و جو گروه بندی شده اند (یعنی نمایش داده شدگان با ساختار محمول مشابه ، مرتب سازی و پیش بینی) ، که در برابر مجموعه ای اجرا می شوند که از افزودن یک شاخص پیشنهادی بهره می برد. مشاور عملکرد بر عملکرد خوشه های اطلس شما تأثیر منفی نمی گذارد.

اگر از این توصیه راضی هستید ، می توانید بدون وقوع خرابی در برنامه ، فهرست های جدید را بطور خودکار از بین ببرید.

چه بعدی

این آخرین قسمت از سری عملکردهای بهترین عملکرد را به پایان می رساند. دانشگاه MongoDB یک دوره آموزشی بدون هزینه و مبتنی بر عملکرد MongoDB را ارائه می دهد. این یک روش عالی برای کسب اطلاعات بیشتر در مورد قدرت نمایه سازی است.

بعدی در این سریال: Sharding.

نسخه اصلی جدید ارائه دهنده Atlas Terraform MongoDB

اعلام نسخه جدیدی از ارائه دهنده Atlas Terraform MongoDB.

10 وبلاگ برتر MongoDB 2022

سال 2022 سال بسیاری از نقاط عطف در MongoDB بود - از رویدادهای جهانی گرفته تا پیشرفت گرفته تا پلت فرم داده های توسعه دهنده Atlas MongoDB و همه چیز در بین. محبوب ترین پست های وبلاگ ما این دستاوردها را منعکس می کند ، و اعلامیه ها ، رویدادها و موارد دیگر را شامل می شود ، از MongoDB 6. 0 گرفته تا رمزگذاری قابل پرسش به جوایز سالانه شریک سال ما. برای جمع آوری کلیه پست های برتر وبلاگ ما از سال 2022 بخوانید. 10. شناخت شرکای MongoDB از سال شرکای سال بخش بزرگی از موفقیت MongoDB است ، و به مشتریان ما کمک می کند تا زیرساخت های خود را با MongoDB مدرن کنند ، MongoDB را در سیستم های موجود خود ادغام کنند و حتی فروشاطلس در بازارهای خود. شرکای دیگر همچنین به تطبیق پلت فرم داده های توسعه دهنده MongoDB با بخش ها و سوله های مختلف مانند داده های جریان ، تجارت الکترونیک و خدمات مالی کمک می کنند. با هم کار کنید: جوایز شریک MongoDB سال برای کسب اطلاعات در مورد تعدادی از این سازمان ها. 9. همگام سازی داده ها با همگام سازی داده های همگام سازی خوشه ای به خوشه و تهیه نسخه پشتیبان بخش مهمی از بستر داده های توسعه دهنده Atlas است. با این حال ، تا همین اواخر ، هیچ راهی آسان برای همگام سازی داده ها در بین خوشه ها وجود نداشت ، به خصوص اگر در محیط های مختلف قرار داشته باشند-فکر کنید همگام سازی یک خوشه ترکیبی با یک ابر بومی. این وبلاگ همگام سازی خوشه ای به خوشه را معرفی می کند ، که همگام سازی یک طرفه بین هر دو خوشه mongoDB را بدون در نظر گرفتن نوع امکان پذیر می کند. فرآیند همگام سازی بسیار انعطاف پذیر است ، شامل نظارت در زمان واقعی و کنترل مکث ، رزومه یا هماهنگ سازی معکوس در هر زمان است. نگه داشتن داده ها را در همگام سازی در هر نقطه با همگام سازی خوشه به خوشه بخوانید. 8. چگونه MongoDB 6. 0 داده های سری زمانی را که در همه چیز از دستگاه های IoT گرفته تا تجارت الکترونیک استفاده می شود ، بهبود می بخشد ، داده های سری زمانی یک مورد مهم برای بسیاری از صنایع است. از زمان انتشار آنها در MongoDB 5. 0 ، مجموعه های سری زمانی به طور مداوم بهبود یافته است تا به توسعه دهندگان کمک کند تا طیف وسیع تری از مشکلات را برطرف کنند ، از جمله فشرده سازی ستونی برای ردپاهای ذخیره سازی کوچکتر ، تراکم برای پر کردن شکاف داده ها و افزایش نمایه سازی در مجموعه های سری زمانی برای عملکرد بهتر خواندن. بخوانید MongoDB قابلیت های سری زمانی جدید را برای MongoDB 6. 0 اعلام می کند. 7. کاهش پیچیدگی با Apollo GraphQL و Atlas MongoDB به عنوان لایه ای که داده های ابر ، API ها و خدمات شما را به یک طرح واحد و قابل دسترسی (که به عنوان یک نمودار شناخته می شود) متحد می کند ، GraphQL یک رویکرد یکپارچه و یکپارچه به عملیات می بخشد و در عین حال مزایای آن را حفظ می کند. معماری میکروسرویس. در این پست چگونه مقیاس پذیری ، قابلیت اطمینان ،

استراتژی برای تحلیل فاندمنتال...
ما را در سایت استراتژی برای تحلیل فاندمنتال دنبال می کنید

برچسب : نویسنده : سعید شیخ‌زاده بازدید : <-PostHit-> تاريخ : دوشنبه 8 خرداد 1402 ساعت: 19:50