نکات برنامه‌نویسی

نکات برنامه‌نویسی و رایانه‌ای - امیرمسعود ایرانی

نکات برنامه‌نویسی

نکات برنامه‌نویسی و رایانه‌ای - امیرمسعود ایرانی

ایندکس چند ستونی( Multi-Column Index ) در MySQL

امیرمسعود ایرانی | يكشنبه, ۲۰ ارديبهشت ۱۳۹۴، ۰۵:۴۰ ب.ظ | ۰ نظر

استفاده از ایندکس‌ها در پایگاه داده به دو منظور، جستجوی سریع و مرتب‌سازی سریع به انجام می‌رسد.

برای مثال اگر بخواهیم، در جدول کاربران، کاربری با شماره ملی 1234567890 را بیابیم، با ایندکس گذاری روی ستون کد ملی، این جستجو در زمانی بسیار کوتاه به نتیجه می‌رسد.

یا چنانچه بخواهیم دانش‌آموزان را بر اساس معدل مرتب کنیم و سه نفر نخست را جدا کنیم، استفاده از ایندکس روی ستون معدل سبب به نتیجه‌رسیدن سریع خواهد شد.

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


نوع دیگری از ایندکس‌ها، ایندکس‌های چند ستونی یا Multi-Column Index ها هستند.

این نوع ایندکس به صورت ترکیبی از چند ستون ساخته می‌شود. برای مثال «شماره ملی و معدل». یا «شناسه و نام خانوادگی».

مورد استفاده از ایندکس‌های چند ستونی هنگامی است که بخواهیم، اطلاعات را از پایگاه داده با شرط‌های ترکیبی بازخوانی کنیم. برای مثال تمام کاربرانی که سال تولدشان کمتر از ۱۳۸۰ است و معدلشان بیش از ۱۹ است.

مزیت ایندکس‌های ترکیبی در استفاده از چپ به راست است. در مثال بالا، چنانچه روی ستون‌های «سال تولد» و «معدل» ایندکس ترکیبی ثبت کنیم، جستجوی ستون «معدل» به تنهایی افزایش سرعتی نخواهد داشت ولی جستجوی ستون «سال تولد» به دلیل اینکه در ابتدا آمده با سرعت زیاد به انجام خواهد رسید.

ایندکس‌های چند ستونی علاوه بر مزیت‌های ایندکس‌های تک ستونی، مزیت‌دیگری نیز می‌توانند داشته باشند.

این مزیت هنگامی است که تنها اطلاعات موجود در ایندکس چند ستونی را SELECT کنیم.

برای مثال، جستجو برای دانش‌آموزانی که سال تولد ۱۳۸۰ دارند و SELECT کردن تنها ستون معدل آن‌ها، با سرعت بسیار زیاد به انجام می‌رسد. زیرا نیازی به مراجعه به دیسک سخت برای پیدا کردن تک تک ردیف‌های دارای شرط نیست و اطلاعات مورد نیاز قبلا در ایندکس موجود است

  • امیرمسعود ایرانی

index

multi-column

mysql

ایندکس

بهینه‌سازی

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی