با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، و کاربرانی که دوره آموزش MySQL را دنبال می کنند. INDEX ها در MySQL یک ساختار داده است که سرعت عملیات در یک جدول را بهبود می بخشد. INDEX ها در MySQL را می توان با استفاده از یک یا چند ستون ایجاد کرد، مبنای دودویی را برای جستجوی سریع و دسترسی به داده ها را فراهم می کند. هنگام ایجاد INDEX ، باید توجه داشت که تمام ستون ها برای ساخت پرس وجوهای SQL و ایجاد یک یا چند INDEX در آن ستون ها مورد استفاده قرار می گیرند.در واقع، INDEX نیز نوعی جدول هستند که فیلد index را نگه می دارند و یک اشاره گر به هر یک از رکوردهای جداول موجود دارد. در ادامه ی این مباحث برای آشنایی با INDEX ها در MySQL با ما همراه باشید.
در ادامه ی این آموزش با انواع INDEX و نحوه ی کار با آن ها آشنا می شوید.
در نظر داشته باشید که کاربران INDEX ها را نمی بینند.
از INDEX ها در MySQL فقط به منظور سرعت بخشیدن به نمایش داده ها استفاده می شوند.
دستورات INSERT و UPDATE از دستورات SELECT در SQL کند تر انجام می شود، چراکه در INSERT و UPDATE مقدار INDEX ها نیز وارد شده یا بروز می شود.
شما می توانید یک index یکتا روی یک جدول ایجاد کنید.
یک index یکتا به این معنی است که دو ردیف نمی توانند یک مقدار شاخص را داشته باشند.
سینتکس ایجاد یک Index روی یک جدول به صورت زیر است :
شما می توانید از یک یا چمند ستون برای ایجاد یک index استفاده کنید.
برای مثال ما می توانیم یک index روی جدول tutorials_tbl با استفاده از tutorial_author ایجاد کنیم :
همچنین می توانید با حذف کلمه ی کلیدی UNIQUE از query یک index ساده ایجاد کنید.
index ساده اجازه می دهد تا مقادیر در یک جدول تکرار شوند.
اگر می خواهید مقادیر یک ستون را به ترتیب نزولی نشان دهید، می توانید نام DESC را پس از نام ستون ذخیره شده قرار دهید:
۴ نوع دستور برای افزودن index ها به یک جدول وجود دارد :
این دستور یک کلید اصلی را به جدول اضافه می کند، این به این معنی است که index این فیلد باید یکتا باشد.
یک index را ایجاد می کند که ارزش ها در آن باید منحصر به فرد باشند (به جز مقادیر NULL که ممکن است چندین بار ظاهر شوند).
این یک index عادی را اضافه می کند که هر مقدار ممکن است بیش از یک بار ظاهر شود.
این یک شاخص ویژه FULLTEXT که برای اهداف جستجوی متن استفاده می شود را ایجاد می کند.
کد زیر یک نمونه برنامه برای افزودن index در یک جدول موجود است :
1 | mysql> ALTER TABLE testalter_tbl ADD INDEX (c); |
شما می توانید هر یک از INDEX های موجود را با استفاده از DROP در قالب دستور ALTER حذف کنید.
مثال زیر index ایجاد شده در مثال فوق را حذف می کند :
1 | mysql> ALTER TABLE testalter_tbl DROP INDEX (c); |
شما می توانید یک کلید اصلی را به همین روش ایجاد کنید.
اما اطمینان حاصل کنید که کلید اصلی روی ستون هایی کار می کند که NULL نیستند.
مثال زیر برای افزودن کلید اصلی به جداول موجود در دیتابیس است.
این ابتدا ستون NULL را ایجاد می کند و سپس آن را به عنوان کلید اصلی اضافه می کند:
1 2 | mysql> ALTER TABLE testalter_tbl MODIFY i INT NOT NULL; mysql> ALTER TABLE testalter_tbl ADD PRIMARY KEY (i); |
استفاده از ALTER برای حذف یک کلید اصلی :
1 | mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY; |
برای حذف یک index که کلید اصلی نیست ، شما باید نام index را مشخص کنید.
می توانید با استفاده از دستور SHOW INDEX تمام index های موجود در یک جدول را لیست کنید.
می توانید با استفاده از کاراکتر G\ تمام نتابج را به صورت عمودی مرتب سازی کنید.
مثال :
1 2 | mysql> SHOW INDEX FROM table_name\G ........ |
دستوراتی مانند INSERT و UPDATE در زمان افزودن و یا حذف داده ها در جداول ، index های آن ها را نیز تغییر می دهد به همین خاطر زمان بیشتری را می گیرد، اما شما می توانید با INDEX ها در MySQL مدت زمان این عملیات را کمتر کنید.
never
اینارو که خودم می دونم یه کم پیشرفته تر توضیح دهید با تشکر
صادق
سلام.
ممنون از نظرتون. آموزش ها در اصل برای کسانی که آشنایی قبلی با مطالب ندارند طراحی شدن. سعی خواهیم کرد در آینده آموزش های پیشرفته تری بذاریم.
جبارسینگ
اونیکه بدونه مثل تو حرف نمیزنه معلومه هیچی نمیفهمی،اون تشکرتم بدرد خودت میخوره،اینهمه مطلب راجع به مسائل مختلف ارسال کرده حالا ترجمه یا هر چیزی یاد بگیر عین آدم تشکر کنی خاک تو سر نفهمت از خود مچکر