ایندکس (Index)
اینجا درباره «ایندکس (Index)» حرف می زنیم. ایندکس میان بُرِ جست وجو است. داده ها همان اند، اما جست وجو سریع تر می شود. مثل فهرست کتاب که رسیدن به صفحه را تند می کند. پس برای ستون های جست وجوشونده ایندکس بساز.
CREATE INDEX چیست؟
دستور CREATE INDEX روی جدول، ایندکس می سازد. کاربر ایندکس را نمی بیند. اما موتور پایگاه داده از آن برای جست وجوی سریع استفاده می کند.
هشدار: به روزرسانی جدولِ دارای ایندکس کندتر است. چون خود ایندکس هم باید به روزرسانی شود. بنابراین فقط روی ستون هایی که زیاد جست وجو می شوند ایندکس بساز.
سینتکس ساخت ایندکس
این دستور، ایندکس معمولی می سازد. مقدار تکراری مجاز است.
CREATE INDEX index_name
ON table_name (column1, column2);
ایندکس یکتا (UNIQUE INDEX)
اینجا تکراری ها مجاز نیستند. برای یکتایی ترکیبی هم کاربرد دارد.
CREATE UNIQUE INDEX index_name
ON table_name (column1, column2);
نکته: دستور دقیق در پایگاه داده ها کمی فرق دارد. راهنمای سیستم خودت را بررسی کن.
نمونه CREATE INDEX
ایندکس روی LastName در جدول Persons ساخته می شود.
CREATE INDEX idx_lastname
ON Persons (LastName);
ایندکس ترکیبی روی LastName و FirstName ساخته می شود.
CREATE INDEX idx_pname
ON Persons (LastName, FirstName);
حذف ایندکس (DROP INDEX)
برای حذف ایندکس از دستورات زیر استفاده کن. نحو در سیستم ها متفاوت است.
MS Access
DROP INDEX index_name ON table_name;
SQL Server
DROP INDEX table_name.index_name;
DB2 / Oracle
DROP INDEX index_name;
MySQL
ALTER TABLE table_name
DROP INDEX index_name;
تمرین گام به گام
- ستون های پرجست وجو را شناسایی کن.
- ایندکس معمولی یا یکتا را بساز.
- بررسی کن کوئری ها سریع تر شدند یا نه.
- اگر به روزرسانی کند شد، ایندکس را بازبینی کن.
نکته: مقدارهای خالی زیاد، همیشه مفید نیستند. اول الگوی کوئری ها را بسنج. برای داده پیش فرض به پیش فرض سر بزن. قانون گذاری داده را هم در Check ببین.
جمع بندی سریع
- ایندکس جست وجو را سریع می کند.
- ایندکس یکتا، تکراری را منع می کند.
- نوشتن با ایندکس کندتر می شود.
- نحو حذف در سیستم ها متفاوت است.
- فقط روی ستون های مهم ایندکس بزن.