"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية الحصول على إجمالي عدد الصفوف الكلية قبل تطبيق الحد في postgresql؟

كيفية الحصول على إجمالي عدد الصفوف الكلية قبل تطبيق الحد في postgresql؟

نشر في 2025-03-23
تصفح:479

How to Efficiently Get Total Row Count Before Applying LIMIT in PostgreSQL?

أفضل طريقة لتحديد عدد النتائج قبل الحد من التطبيق

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

لحسن الحظ ، قدمت PostgreSQL 8.4 حلًا أكثر كفاءة: وظائف النافذة. باستخدام وظيفة نافذة ، يمكنك استرداد كلاً من إجمالي عدد النتائج والنتائج المحدودة في استعلام واحد.

SELECT foo
     , count(*) OVER() AS full_count
FROM   bar
WHERE  
ORDER  BY 
LIMIT  
OFFSET ;

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

تصفية الصفوف بناءً على مكان البند

تطبيق وظائف النوافذ
  1. استرجاع
  2. بالإضافة إلى وظائف النافذة ، هناك طرق بديلة لاسترداد عدد الصفات المتأثرة:
  3. pg_num_rows
  4. الجدول] (https://dba.stackexchange.com/questions/128089/optimize-query-with-on-large-table)
  5. postgresql] (https://stackoverflow.com/questions/4644316/calculate-number-of-rows-affection-batch-batch-id-in-postgresql)

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3