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

الحصول على أقصى قيمة وطرق البيانات المقابلة بكفاءة من جداول قاعدة بيانات SQL الكبيرة

نشر في 2025-04-21
تصفح:637

How to Efficiently Retrieve the Maximum Value and Corresponding Data from a Large SQL Database Table?

بكفاءة في العثور على أقصى قدر من القيم والبيانات المرتبطة بها في جداول SQL الكبيرة

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

عينة الجدول:

ID  |  tag  |  version
----- ----- -----
1 |  A  |  10
2 |  A  |  20
3 |  B  |  99
4 |  C  |  30
5 |  F  |  40

النتيجة المطلوبة:

ID  |  tag  |  version
----- ----- -----
2  |  A  |  20
3  |  B  |  99
4  |  C  |  30
5  |  F  |  40

بالنسبة للجداول التي تحتوي على حوالي 28 مليون صف ، يمكن أن تكون هناك طرق قياسية مثل Nested SELECT أو مجموعة بسيطة بواسطة مع max بطيئة بشكل لا يصدق. يستخدم حل أكثر كفاءة بكثير وظيفة النافذة

حدد S.ID ، S.TAG ، S.Version من ( حدد t.*، row_number () أكثر من table t ) ق حيث s.rnk = 1 ؛
SELECT s.id, s.tag, s.version
FROM (
  SELECT t.*,
         ROW_NUMBER() OVER(PARTITION BY t.id ORDER BY t.version DESC) AS rnk
  FROM YourTable t
) s
WHERE s.rnk = 1;

  1. الاستعلام الداخلي:

    يعين رتبة فريدة ( rnk ) لكل صف داخل كل معرف يعتمد التصنيف على الإصدار بترتيب تنازلي ، مما يعني أن أعلى إصدار يحصل على المرتبة 1.

    الاستعلام الخارجي:
  2. يقوم بتصفية النتائج من الاستعلام الداخلي ، واختيار الصفوف فقط حيث
  3. rnk = 1

    . هذا يعطينا بفعالية الصف مع الإصدار الأقصى لكل معرف . يتجنب هذا النهج الاستفسارات المتداخلة ومجموعة

    من خلال
  4. العمليات ، مما يجعله أسرع بكثير لمجموعات البيانات الكبيرة. يوفر استخدام
row_number ()

طريقة نظيفة وفعالة لتحقيق النتيجة المطلوبة.

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

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

Copyright© 2022 湘ICP备2022001581号-3