اذهب إلى المحتوى
  • 0

كيفية إنشاء فهرس لأكثر من عمود في جدول SQL

سعيد يوسف

السؤال

Recommended Posts

  • 1

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

فإذا كان لديك استعلام بالشكل التالي:

SELECT * FROM USERS WHERE age > 17 AND phone = xxxxxxxxx

سيكون الفهرس المناسب بهذا الشكل، مثال:

Create Index My_IndexName On TableName_USERS (phone Asc, age Asc)

فنقوم بإنشاء فهرس لأكثر من عمود Multi-column Indexes كما أن ترتيب الأعمدة يهم في الفهرس فوضع رقم الهاتف أولاً أفضل من العمر لأنه قيمة غير مكررة فرضاً بينما ملايين الأشخاص لهم نفس العمر (ضمن مشروعك مثلاً كل عمر له مئة مشترك.. فالفهرسة للرقم أسرع لأنه على الأغلب فريد )

يمكن الاستفادة من السؤال:

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

قد نحتاج لعمل فهرسة لعدة أعمدة سويا في عدة حالات منها:

  • استرجاع بيانات التي تحتاج تحقيق عدة شروط سويا
  • تجميع البيانات أو فرزها بعد تنظيف البيانات بعد البحث
  • تكرار فهرسة عدة أعمدة لجدول واحد
  • تسريع عمليات البحث في عدة أعمدة

الصيغة العامة لعمل فهرسة لعدة أعمدة سويا كالتالي:

CREATE INDEX [index name]
ON [Table name]([column1, column2, column3,...]);

وترتيب الفهرسة هو نفسه الذي يظهر عند دمج الأعمدة سويا.

المثال التالي يوضح كيفية استخدامها.

دعنا ننشئ جدولنا ونضع به بعض القيم كالتالي:

CREATE TABLE class_records(id INT,firstname VARCHAR(50),lastname VARCHAR(50));
edb=# insert into class_records values (1,'harman','baweja');

INSERT 0 1

edb=# insert into class_records values (2,'hardik','pandya');

INSERT 0 1

edb=# insert into class_records values (3,'tom','lane');

INSERT 0 1

ثم عمل الفهرسة كالتالي:

create index class_records_index1 on class_records (lastname,firstname);

CREATE INDEX

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...