English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

إنشاء مؤشر SQL (جملة CREATE INDEX)

في هذا الدليل، ستتعلم كيفية إنشاء مؤشرات على الجداول لتحسين أداء قاعدة البيانات.

ما هو المؤشر؟

النوع هو بنية بيانات مرتبطة بالجدول، وتقدم وصولاً سريعاً إلى الصفوف في الجدول بناءً على قيم في إحدى أو أكثر من الأعمدة (مفتاح المؤشر).

افترض أن لديك قاعدة بيانات تحتوي علىcustomers表,وكنت ترغب في استخدام الجملة التالية للبحث عن جميع العملاء الذين تبدأ أسمائهم بحرف A.

SELECT cust_id, cust_name, address FROM customers 
WHERE cust_name LIKE 'A%';

لإيجاد مثل هؤلاء العملاء، يجب على الخادم البحث عن}}customersيتم تفحص الجدول خطوة بخطوة ومراجعة محتويات عمود الاسم. على الرغم من أن هذا يمكن أن يعمل بشكل جيد للجدول الذي يحتوي على عدد قليل من السطور، ولكن تخيل أن الجدول يحتوي على مليون سطر، فإن استجابة الاستعلام قد تستغرق وقتًا طويلاً. في هذه الحالة، يمكنك تسريع عملية المعالجة عن طريق تطبيق المؤشر على الجدول.

إنشاء مؤشر

يمكنك استخدام جملة CREATE INDEX التالية لإنشاء مؤشر:

CREATE INDEX index_name ON table_name (column_name);

على سبيل المثال، إذا كنت تريد إنشاء مؤشر في جدول العملاءnameيمكنك إنشاء مؤشر على الأعمدة باستخدام:

CREATE INDEX cust_name_idx ON customers (cust_name);

بالت defaultManager، سيسمح المؤشر بالمدخلات المكررة ويعيد ترتيب المدخلات بترتيب تصاعدي. إذا كنت ترغب في طلب مدخلات فريدة، أضف كلمة المفتاح UNIQUE بعد CREATE، كما هو موضح أدناه:

CREATE UNIQUE INDEX cust_name_idx 
ON customers (cust_name);

في MySQL، يمكنك عرض المؤشرات المتاحة على جدول معين كما هو موضح أدناه:

mysql> SHOW INDEXES FROM customers \G

نصيحة:استبدل نقاط السطر (\G) بفاصلة الوصل (؛) لإنهاء جملة SQL. إذا كانت النتائج واسعة جدًا للنافذة الحالية، فإنها تظهر بشكل عمودي بدلاً من تنسيق الجدول العادي.

إنشاء مؤشرات متعددة الأعمدة

يمكنك بناء مؤشرات عبر عدة أعمدة. على سبيل المثال، لنفترض أنك قد أسميت جدولًا في قاعدة البياناتلمستخدمينبأعمدةfirst_nameوlast_name، وإذا كنت تزور باستمرار باستخدام هذه الأعمدة، يمكنك إنشاء مؤشر على سجلات المستخدمين في كلا الأعمدة معًا لتحسين الأداء، كما هو موضح في الشكل التالي:

CREATE INDEX user_name_idx ON users (first_name, last_name);

نصيحة:يمكنك اعتبار مؤشرات قاعدة البيانات كجزء من فهرس الكتاب، لمساعدتك في العثور بسرعة أو تحديد موضوع معين في الكتاب.

عيوب المؤشرات

ينبغي إنشاء المؤشرات بحذر. لأن كل مرة يتم إضافة، تحديث أو حذف سطر في الجدول، يجب تعديل جميع المؤشرات على الجدول. لذا، كلما زاد عدد المؤشرات، زاد العمل الذي يجب على الخادم تنفيذه، مما يؤدي في النهاية إلى انخفاض الأداء.

إليك بعض القواعد الأساسية التي يمكنك اتباعها لإنشاء مؤشرات:

  • أنشئ مؤشرات للأعمدة التي تستخدمها بشكل متكرر للبحث عن البيانات.

  • لا تقم بإنشاء مؤشرات للأعمدة التي لم تُستخدم كключ بحث.

  • استخدم الأعمدة المؤشرة لتحسين أداء الاتصال.

  • تجنب تضمين الكثير من القيم NULL في الأعمدة.

بالنسبة للجداول الصغيرة، لا تحتاج إلى إنشاء مؤشرات، لأن في حالة الجداول الصغيرة، تفحص الخادم للجدول عادةً أسرع من النظر في المؤشرات أولاً.

ملاحظة:عند إنشاء جدول، تقوم معظم أنظمة قواعد البيانات (مثل MySQL، SQL Server، إلخ) بإنشاء مؤشرات تلقائيًا على الجداولPRIMARY KEYوUNIQUEمؤشر على عمود

حذف المؤشر

يمكنك استخدام الجملة التالية لحذف المؤشرات غير الضرورية.

DROP INDEX index_name ON table_name;

الجملة التالية ستقوم بحذفcustomersحذف مؤشر جدولcust_name_idx.

DROP INDEX cust_name_idx ON customers;

إضافة إلى ذلك، إذاحذف جدولثم سيتم حذف جميع المؤشرات المرتبطة أيضًا.

تحذير:التحقق قبل حذف المؤشر، لأن حذف المؤشر قد يؤدي إلى تأثيرات غير متوقعة. كقاعدة عامة، لا تقم بإنشاء أو حذف المؤشرات بغير تفكير.