دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۲۲
  • آبان

جلسه ۲۴ : INDEX ها در MySQL

  • دسته‌بندی‌ها :
جلسه ۲۴ : INDEX ها در MySQL
    • جزئیات
    • نوع محتواآموزش تصویری

      مقدمه

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، و کاربرانی که دوره آموزش MySQL را دنبال می کنند. INDEX ها در MySQL یک ساختار داده است که سرعت عملیات در یک جدول را بهبود می بخشد. INDEX ها در MySQL را می توان با استفاده از یک یا چند ستون ایجاد کرد، مبنای دودویی را برای جستجوی سریع و دسترسی به داده ها را فراهم می کند. هنگام ایجاد INDEX ، باید توجه داشت که تمام ستون ها برای ساخت پرس وجوهای SQL و ایجاد یک یا چند INDEX در آن ستون ها مورد استفاده قرار می گیرند.در واقع، INDEX نیز نوعی جدول هستند که فیلد index را نگه می دارند و یک اشاره گر به هر یک از رکوردهای جداول موجود دارد. در ادامه ی این مباحث برای آشنایی با INDEX ها در MySQL با ما همراه باشید.

      INDEX ها در MySQL

      در ادامه ی این آموزش با انواع INDEX و نحوه ی کار با آن ها آشنا می شوید.

      در نظر داشته باشید که کاربران INDEX ها را نمی بینند.

      از INDEX ها در MySQL فقط به منظور سرعت بخشیدن به نمایش داده ها استفاده می شوند.

      دستورات INSERT و UPDATE از دستورات SELECT در SQL کند تر انجام می شود، چراکه در INSERT و UPDATE مقدار INDEX ها نیز وارد شده یا بروز می شود.

      index ساده و یکتا

      شما می توانید یک index یکتا روی یک جدول ایجاد کنید.

      یک index یکتا به این معنی است که دو ردیف نمی توانند یک مقدار شاخص را داشته باشند.

      سینتکس ایجاد یک Index روی یک جدول به صورت زیر است :

      • CREATE UNIQUE INDEX index_name.
      • ;…(ON table_name ( column1, column2

      شما می توانید از یک یا چمند ستون برای ایجاد یک index استفاده کنید.

      برای مثال ما می توانیم یک index روی جدول tutorials_tbl  با استفاده از tutorial_author ایجاد کنیم :

      • CREATE UNIQUE INDEX AUTHOR_INDEX
      • (ON tutorials_tbl (tutorial_author

      همچنین می توانید با حذف کلمه ی کلیدی UNIQUE از query یک index ساده ایجاد کنید.

      index ساده اجازه می دهد تا مقادیر در یک جدول تکرار شوند.

      اگر می خواهید مقادیر یک ستون را به ترتیب نزولی نشان دهید، می توانید نام DESC را پس از نام ستون ذخیره شده قرار دهید:

      • mysql> CREATE UNIQUE INDEX AUTHOR_INDEX
      • (ON tutorials_tbl (tutorial_author DESC

      استفاده از دستور ALTER به منظور افزودن و یا حذف index 

      ۴ نوع دستور برای افزودن index ها به یک جدول وجود دارد :

      • ( ALTER TABLE tbl_name ADD PRIMARY KEY (column_list :

      این دستور یک کلید اصلی را به جدول اضافه می کند، این به این معنی است که index این فیلد باید یکتا باشد.

      • (ALTER TABLE tbl_name ADD UNIQUE index_name (column_list :

      یک index را ایجاد می کند که ارزش ها در آن باید منحصر به فرد باشند (به جز مقادیر NULL که ممکن است چندین بار ظاهر شوند).

      • (ALTER TABLE tbl_name ADD INDEX index_name (column_list :

      این یک index عادی را اضافه می کند که هر مقدار ممکن است بیش از یک بار ظاهر شود.

      • (ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list :

      این یک شاخص ویژه FULLTEXT که برای اهداف جستجوی متن استفاده می شود را ایجاد می کند.

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

      مثال : 

      شما می توانید هر یک از INDEX های موجود را با استفاده از DROP در قالب دستور ALTER حذف کنید.

      مثال زیر index ایجاد شده در مثال فوق را حذف می کند :

      مثال : 

      استفاده از ALTER برای افزودن یا حذف کلید اصلی

      شما می توانید یک کلید اصلی را به همین روش ایجاد کنید.

      اما اطمینان حاصل کنید که کلید اصلی روی ستون هایی کار می کند که NULL نیستند.

      مثال زیر برای افزودن کلید اصلی به جداول موجود در دیتابیس است.

      این ابتدا ستون NULL را ایجاد می کند و سپس آن را به عنوان کلید اصلی اضافه می کند:

      مثال : 

      استفاده از ALTER برای حذف یک کلید اصلی :

      مثال : 

      برای حذف یک index که کلید اصلی نیست ، شما باید نام index را مشخص کنید.

      نمایش دادن اطلاعات index

      می توانید با استفاده از دستور SHOW INDEX تمام index های موجود در یک جدول را لیست کنید.

      می توانید با استفاده از کاراکتر G\ تمام نتابج را به صورت عمودی مرتب سازی کنید.

      مثال :

      مثال : 

      کلام آخر

      دستوراتی مانند INSERT و UPDATE در زمان افزودن و یا حذف داده ها در جداول ، index های آن ها را نیز تغییر می دهد به همین خاطر زمان بیشتری را می گیرد، اما شما می توانید با INDEX ها در MySQL مدت زمان این عملیات را کمتر کنید.

      QR:  جلسه ۲۴ : INDEX ها در MySQL
      به اشتراک بگذارید


      دیدگاه کاربران
      1. تصویر کاربر
        • تصویر کاربر
        • تصویر کاربر