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

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

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

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

۲ مطلب در ارديبهشت ۱۳۹۴ ثبت شده است

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

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

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

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

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

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


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

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

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

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

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

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

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

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

حذف Binary Log در MySQL

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

Binary Log چیست؟

Binary Log در MySQL فایل‌هایی هستند که تاریخچه‌ای از تمام تغییرات صورت گرفته روی بانک اطلاعاتی را در خود نگهداری می‌کنند. این تغییرات می‌تواند در هنگام استفاده از سرورهای موازی برای همزمان سازی مورد استفاده قرار بگیرد. همچنین برای بازیابی و تعمیر بانک اطلاعاتی، وجود این تاریخچه بسیار مفید است.

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

فایل‌های Binary Log با نام‌هایی شبیه mysql-bin.000001 در کنار فایل‌های اطلاعاتی MySQL ذخیره می‌شود.

حذف Binary Log

برای حذف این فایل‌ها می‌توان از نگارش CLI یا خط فرمان MySQL کمک گرفت

برای این منظور به محیط خط فرمان مراجعه کنید و دستورات زیر را اجرا نمایید.

C:\.....> mysql --user=root --password=
mysql> reset master;
mysql> exit
خط نخست در قطعه کد بالا، نگارش خط فرمان mysql را با نام کاربری و رمز پیش‌فرض اجرا می‌کند
در خط دوم که محیط اجرای دستورات mysql است، وضعیت Master Replication یا پایگاه داده مرکزی را به حالت خام برمی‌گردانیم و در نتیجه فایل‌های Binary Log حذف خواهند شد.

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