الفبایت، الفبای بهترین‌ها

شاخص بندی جدول‌ها در MySQL

پس از بررسی نحوه تغییر داده‌های جدول در MySQL باید به توضیح شاخص ها در MySQL بپردازیم. با ما در الفبایت همراه باشید.

یکی از کار های مهمی که بر روی جدول ها در MySQL صورت می‌گیرد شاخص‌بندی است که باعث افزایش سرعت در پاسخگویی به درخواست‌ها می‌شود. به طور کلی می‌توان فیلدها را شاخص‌بندی کرد که باعث می‌شود سرعت جستجو در آن جدول افزایش پیدا کند. در جدول‌های معمولی (شاخص‌بندی نشده) اگر به دنبال سطری باشیم، MySQL باید تمام فیلدها (ستون‌ها) را در تمام سطرها تطبیق دهد اما اگر شاخص‌بندی کنیم مستقیما به سطر مورد نظر ما می‌رود. اما این نکته نیز باید گفته شود که برای نگه‌داری شاخص‌ها فضای بیشتری از hard سیستم اشغال می‌شود و از سرعت برخی دستورات مانند insert و update و delete کاسته می‌شود. علت آن نیز به‌روز شدن شاخص‌ها می‌باشد که باید همزمان انجام شود.

شاخص‌ها را می‌توان با دو دستور create index و یا alter table ایجاد کرد.

نحوه ایجاد شاخص با دستور create index:

برای انجام این کار باید از دستور create index به شکل زیر استفاده کرد:
[crayon-662d908f822d5883310020/]

در این دستور index_name نام شاخص است که می‌خواهیم ایجاد کنیم. table_name نیز نام جدولی است که می‌خواهیم شاخص بر روی آن اعمال شود. اگر از using استفاده کنیم باید نوع را نیز مشخص کنیم که btree یا hash است. قسمت field_spec ها نیز به شکل زیر هستند:

[crayon-662d908f822f5586272417/]

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

مثال: شاخص pindex را بر روی جدول post ایجاد کنید به‌طوری که btree باشد و روی ستون author ایجاد شود.

[crayon-662d908f822fc201708040/]

انواع شاخص:

شاخص‌ها به دو دستۀ یکتا(unique) و متن کامل(fulltext) تقسیم می‌شوند. نوع شاخص را می‌توان بعد از دستور create مشخص کرد.

شاخص‌های یکتا: اگر نوع را یکتا تعیین کنیم هیچ سطری وجود نخواهد داشت که با سطر دیگر برابر باشد.

مثال: index1 را بر روی جدول post اعمال کنید.

[crayon-662d908f822fe810245015/] شاخص‌های متن کامل: این نوع شاخص برای جستجوی متن کامل مناسب است. در صورت جستجوی رشته‌ای دلخواه، رکوردهایی (سطرهایی) برمی‌گردد که حاوی مقادیر مشابه با آن رشته باشد. این نوع شاخص بندی تنها بر روی فیلدهای char ، text و varchar قابل اجرا می باشد.

مثال: شاخص index2 را بر روی جدول post و روی ستون title ایجاد کنید.
[crayon-662d908f8230a768482266/]

نحوه ایجاد شاخص با دستور alter table:

برای انجام این کار باید طبق دستور زیر عمل کرد.
[crayon-662d908f82311104613298/] مثال: شاخص fulltext را با دستور alter table روی جدول post اعمال کنید.
[crayon-662d908f82313799059885/]

مشاهده شاخص‌های جدول:

با استفاده از دستور show index به شکل زیر می توان این کار را انجام داد:
[crayon-662d908f82315953948833/] مثال: شاخص‌های جدول post را نشان دهید.
[crayon-662d908f82316147148917/]

حذف شاخص:

اگر زمانی احساس کردید که به شاخصی نیاز ندارید می‌توانید آن را با دستور drop index حذف کنید.
[crayon-662d908f82318787800585/] مثال: index2 را از جدول post حذف کنید.
[crayon-662d908f8231a197155249/]  

به پایان این بخش از آموزش MySQL رسیدیم.

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

با ما در الفبایت همراه باشید…