نستمر معكم في دروس شرح sql بالعربي واليوم سنتحدث عن الفهارس
تعتبر الفهارس index احد الاغراض في قواعد البيانات صممت لزيادة سرعة العمليات وذلك عبر توليد جداول بحث داخلية , اذ يشبه فهرس قاعدة المعطيات فهرس كتاب.
تعتبر الفهارس index احد الاغراض في قواعد البيانات صممت لزيادة سرعة العمليات وذلك عبر توليد جداول بحث داخلية , اذ يشبه فهرس قاعدة المعطيات فهرس كتاب.
يستحسن استخدام الفهارس indexsالأداء في حال كانت الاستعلامات المستخدمة من النوع Select, ويضر
بالأداء في حال كانت العمليات هي عمليات حذف وإدراج وتعديل أي Insert , Delete و Update لانه سيكون مطلوب من تلك العمليات ان تطبق على
الجداول الاساسية وعلى الفهارس التابعة للجدول .
يمكن القول أن استخدام الفهارس index يحسن الأداء بشكل يتجاوز ما قد تسببه عمليات التعديل والحذف من تراجع في الأداء.
كما يمكننا إنشاء فهرس أو مجموعة من الفهارس على جدول معين بحيث يمكن لكل فهرس أن يعمل على حقل أو على مجموعة من الحقول.
فعندما تتم فهرسة جدول حسب حقل معين، تتم فهرسة سجلات هذا الجدول حسب قيمة هذا الحقل ونمطه مما يسمح بإيجاد هذه القيمة سريعًا عندما نجري عملية بحث معتمدة على الحقل المفهرس.
تطبق الفهارس index عادًة على الأعمدة المستخدمة في التعابير
where و Order By وتلك المستخدمة مع التعبير ON الخاص بالتعبير Join .
كما يفيد استخدام الفهارس index مع الحقول التي يقل فيها تكرار القيم حيث تساعد الفهارس على الحصول على اصطفائية عالية.
للفهارس نوعين:
- فهارس فريدة أي لا تسمح بتكرار قيم في الحقل المفهرس.
- فهارس غير فريدة تسمح بتكرار القيم ضمن الحقل المفهرس.
لسنا بحاجة إلى فهرسة المفتاح الرئيسي أو الحقول ذات القيد UNIQUE لأن نظام قاعدة البيانات يولد تلك الفهارس تلقائيًا ويقوم بإزالتها حال إزالة صفة المفتاح الرئيسي أو قيد UNIQUE عن هذه الحقول.
مثال:
إذا كان لدينا جدول كبير يحتوي أسماء الزبائن ومعلوماتهم فإن وجود فهرس على حقل اسم الزبون سيسرع عمليات البحث والاستعلام التي تستخدم الاسم. لأن عملية البحث هنا لا تتم بمسح كامل للجدول الأصلي بل بالبحث ضمن جدول الفهرس أولاً قبل الوصول إلى القيم المطابقة في الجدول الأصلي.
انتبة ملاحظة : يؤثر استخدام عدد كبير من الفهارس سلبيًا على الأداء.
إنشاء الفهارس sql create index :
لإنشاء فهرس فريد أي لا يسمح بتكرار قيم الحقل المفهرس نستخدم الصيغة:
CREATE UNIQUE INDEX index_name ON
tableName (FieldName);
ولإنشاء فهرس غير فريد أي يسمح بتكرار قيم الحقل المفهرس نستخدم الصيغة:
CREATE INDEX index_name ON tableName
(FieldName);
مثال:
لدينا جدول اسمة Phonebook يحتوي على اسماء اشخاص Name وارقام هواتفهم Number وتصنيفهم Category اصدقاء, عائلة،
الخ... فإذا أردنا إنشاء فهرس فريد على حقل فسيكون الاختيار الصائب هو الحقل Number علمنا أن حقل الاسم هو حقل مفتاح رئيسي مفهرس تلقائيًا، وحقل التصنيف Category لا يصلح ليكون فهرس فريد بسبب تكرار قيمه. لذلك
ننشئ الفهرس بالصيغة:
CREATE UNIQUE INDEX myIndex ON
Phonebook (Number);
هذه الصيغة ستسرع إعادة نتائج البحث في استعلام من الشكل:
Select * from Phonebook where Number
= ‘5437268’;
انتبه:
في حالة الفهارس على حقول سلاسل المحارف، لا يتم البحث ضمن جدول الفهرس في حال تم الاستعلام عن سلسلة محرفية جزئية ( من السلسلة المحرفية الأساسية) لا تبدأ من بداية السلسلة الأصلية ففي استعلام من الشكل:
Select * from tableName where
strColumn like ‘%substr’;
لا يُستخدم الفهرس المنشأ على الحقل strColumn وستتم عملية مسح كاملة للجدول الأساسي لإتمام عملية البحث.
حذف الفهارس sql Delete index:
لحذف فهرس نستخدم في SQL التعبير DROP INDEX لكن يحتاج تطبيقه على قواعد البيانات المختلفة، تعديلات طفيفة في الصيغة SQL Server نحتاج إلى تحديد اسم الجدول والفهرس، أي تكون الصيغة بالشكل:
DROP INDEX myTable.myIndex;
أما في Oracle و DB2 فلا نحتاج إلى اسم الجدول فتصبح الصيغة من الشكل:
DROP INDEX myIndex;
وفي MySQL نحتاج أيضًا لتحديد اسم الجدول واسم الفهرس كما يلي:
DROP INDEX myIndex ON myTable;
مثال:
إذا أردنا حذف الفهرس numberIndex من الجدول Phonebook نستخدم الصيغة في SQL Server :
DROP INDEX Phonebook.numberIndex;
و أما في Oracle و DB2 سنستخدم :
DROP INDEX numberIndex;
أما في My SQL فنستخدم:
DROP INDEX numberIndex ON Phonebook;
الى هنا انتهينا من كل ما يتعلق بالفيو والجداول المؤقتة والفهارس INDEX في
قواعد البيانات العلائقية ,, سننتقل في الدرس القادم الى قسم جديد وهو الــ TRANSACTION او ما يسمى بالناقلات ,,,
تابعنا ,,, ليصلك كل جديد وذلك بالاشتراك في المدونة او تسجيل اعجابك
بصفحاتنا على مواقع التواصل الاجتماعية ...
إرسال تعليق
لا تبخل علينا باقتراحك او قم بمشاركة الموضوع ليستفيد الاخرين ايضاً شكرا لزيارتك عزيزي الزائر