ایندکسها در MySQL ابزارهای مهمی هستند که به بهبود کارایی و سرعت پرسوجوهای (queries) پایگاه داده کمک میکنند. این مقاله به بررسی مفهوم ایندکس، انواع ایندکسها و نحوه ایجاد و استفاده از آنها در MySQL میپردازد.
ایندکسها ساختارهای دادهای ویژهای هستند که به موتور پایگاه داده کمک میکنند تا رکوردها را به صورت سریعتر پیدا و بازیابی کند. بدون ایندکس، MySQL مجبور است تا تمام رکوردهای جدول را برای پیدا کردن اطلاعات مورد نیاز پیمایش کند که میتواند زمانبر باشد.
VARCHAR
یا TEXT
استفاده میشود.هنگام ایجاد جدول:
CREATE TABLE useritvisit (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL,
phone VARCHAR(15),
city VARCHAR(50)
);
اضافه کردن به جدول موجود:
ALTER TABLE useritvisit
ADD PRIMARY KEY (id);
هنگام ایجاد جدول:
CREATE TABLE useritvisit (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL UNIQUE,
phone VARCHAR(15),
city VARCHAR(50)
);
اضافه کردن به جدول موجود:
CREATE UNIQUE INDEX unique_email ON useritvisit (email);
هنگام ایجاد جدول:
CREATE TABLE useritvisit (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL,
phone VARCHAR(15),
city VARCHAR(50),
INDEX (name)
);
اضافه کردن به جدول موجود:
CREATE INDEX idx_name ON useritvisit (name);
هنگام ایجاد جدول:
CREATE TABLE useritvisit (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL,
phone VARCHAR(15),
city VARCHAR(50),
INDEX (name, city)
);
اضافه کردن به جدول موجود:
CREATE INDEX idx_name_city ON useritvisit (name, city);
هنگام ایجاد جدول:
CREATE TABLE useritvisit (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL,
phone VARCHAR(15),
city VARCHAR(50),
FULLTEXT (name, email)
);
اضافه کردن به جدول موجود:
CREATE FULLTEXT INDEX ft_name_email ON useritvisit (name, email);
با استفاده از ایندکسها میتوانید بهبود قابل توجهی در عملکرد پرسوجوهای خود مشاهده کنید. به عنوان مثال، با فرض اینکه ایندکس idx_name
بر روی ستون name
ایجاد شده است، پرسوجوهای زیر سریعتر اجرا میشوند:
SELECT * FROM useritvisit WHERE name = 'Ali';
اگر دیگر به ایندکسی نیاز ندارید، میتوانید آن را حذف کنید.
DROP INDEX idx_name ON useritvisit;
DROP INDEX ft_name_email ON useritvisit;
CREATE TABLE useritvisit (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL,
phone VARCHAR(15),
city VARCHAR(50)
);
id | name | phone | city | |
---|---|---|---|---|
1 | Ali | ali@example.com | 09123456789 | Tehran |
2 | Mohamad | mohamad@example.com | 09234567890 | Shiraz |
3 | Reza | reza@example.com | 09345678901 | Isfahan |
4 | Mahya | mahya@example.com | 09456789012 | Eslamabad |
5 | Mehrdad | mehrdad@example.com | 09567890123 | Kermanshah |
CREATE UNIQUE INDEX unique_email ON useritvisit (email);
CREATE INDEX idx_name ON useritvisit (name);
CREATE INDEX idx_name_city ON useritvisit (name, city);
CREATE FULLTEXT INDEX ft_name_email ON useritvisit (name, email);
ایندکسها ابزارهای قدرتمندی هستند که به بهبود عملکرد پرسوجوها در پایگاه داده MySQL کمک میکنند. با انتخاب صحیح نوع ایندکس و استفاده بهینه از آن، میتوانید کارایی پایگاه داده خود را بهبود بخشید و زمان پاسخدهی را کاهش دهید.
PHP یکی از محبوبترین زبانهای برنامهنویسی سمت سرور برای توسعه وب است که به دلیل…
فهرست مطالب فایل php.ini چیست؟ فایل php.ini کجاست؟ مهمترین تنظیمات در فایل php.ini حداکثر زمان…
اتصال دائم (Persistent Connection) به پایگاه داده یکی از روشهای بهینهسازی ارتباطات در برنامههای PHP…
ذخیره و نمایش تصاویر و مدیا در پایگاه داده یکی از نیازهای رایج در پروژههای…
هنگام کار با پایگاه داده در PHP، ممکن است خطاهایی ناشی از کوئریهای ناقص یا…
ایجاد پایگاه داده در PHP یکی از مباحث اساسی برای ساخت وبسایتها و برنامههای تحت…