سؤال

ما أعنيه هو: هل يستفيد الجدول الذي يحتوي على 20 عمودًا من فهرسة حقل معين (واحد يستخدم في استفسارات البحث) من جدول يحتوي على 4 أعمدة فقط؟

أيضًا: ما هو الضرر في إضافة فهرس إلى الحقول التي لا أبحث عنها كثيرًا ، ولكن قد في وقت لاحق في المستقبل؟ هل هناك سلبية لإضافة فهارس؟ هل هو مجرد الحجم الذي يتناوله القرص ، أم أنه يمكن أن يجعل الأمور تعمل بشكل أبطأ لإضافة فهارس غير ضرورية؟

مستخرج من تعليق

أنا أستخدم Postgres (أحدث إصدار) ولدي جدول واحد سأقوم به الكثير من استعلامات النوع المتشابهة ، وما إلى ذلك ، لكن القيم ستتغير بلا شك في كثير من الأحيان لأن عملائي يمكنهم الوصول إلى CRUD. هل يمكنني أن أستطيع فكرة الفهارس؟ هل هم مجرد صداع؟

هل كانت مفيدة؟

المحلول

هل يستفيد الجدول الذي يحتوي على 20 عمودًا من فهرسة حقل معين (واحد يستخدم في استفسارات البحث) من جدول يحتوي على 4 أعمدة فقط؟

لا ، لا يوجد عدد من الأعمدة في الجدول على فوائد من وجود فهرس.

الفهرس هو فقط على القيم في العمود (العمود) المحدد ؛ إن تواتر القيم هو الذي سيؤثر على مقدار الاستفادة من استفساراتك. على سبيل المثال ، يعد العمود الذي يحتوي على قيمة منطقية اختيارًا ضعيفًا للفهرسة ، لأنه فرصة 50/50 ، ستكون القيمة واحدة أو قيمة أخرى. في 50/50 تقسيم على جميع الصفوف ، لا يضيق الفهرس البحث عن صف معين.

ما هو الضرر في إضافة فهرس إلى الحقول التي لا أبحث عنها الكثير ، ولكن قد في وقت لاحق في المستقبل؟

الفهارس فقط تسرع استرجاع البيانات عند استخدامها ، لكنها تؤثر سلبًا على سرعة إدراج/تحديث/حذف عبارات. تتطلب الفهارس أيضًا صيانة للحفاظ على قيمتها.

نصائح أخرى

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

select * from t23
where whatever like 'SOMETHING%'
/

... من غير المحتمل أن يساعد الفهرس في أي من هذه الاستفسارات ...

select * from t23
where whatever like '%SOMETHING%'
/

select * from t23
where whatever like '%SOMETHING'
/

إذا كان لديك حقول نصية مجانية ويحتاج المستخدمون إلى مطابقة غامضة ، فيجب عليك النظر في وظائف النص الكامل لـ Postgres. هذا يستخدم مشغل المطابقة بدلاً من مثل والذي يتطلب نوع فهرس خاص. اكتشف المزيد.

هناك مسكات ، وهي أن فهارس النص الكاملة أكثر تعقيدًا من تلك العادية ، و قرارات التصميم ذات الصلة ليست بسيطة. أيضا بعض التطبيقات تتطلب أنشطة صيانة إضافية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top