عنوان:

‫مقایسه دو نوع صفحه بندی اطلاعات مبتنی بر آفست و مبتنی بر مکان‌نما


نویسنده: وحید نصیری
تاریخ: ۱۴۰۳/۱۱/۲۷ ۰۷:۵۳
آدرس: www.dntips.ir
این مقاله به مقایسه صفحه بندی مبتنی بر آفست و مکان نما می‌پردازد و مزایای عملکرد صفحه بندی مبتنی بر مکان نما را برای مجموعه داده‌های بزرگ نشان می‌دهد.

صفحه بندی مبتنی بر آفست

  • روش سنتی پیاده سازی صفحه بندی است؛ با استفاده از SKIP و TAKE (در SQL: OFFSET و LIMIT).
  • پیاده‌سازی ساده.
  • با افزایش آفست، عملکرد به طور قابل توجهی کاهش می‌یابد. پایگاه داده باید تمام ردیف‌های قبل از آفست را اسکن و حذف کند.
  • خطر از دست دادن یا تکرار موارد، با تغییر داده‌ها بین صفحات.
  • مناسب برای مجموعه داده‌های کوچک یا زمانیکه تعداد کل صفحات مورد نیاز است.

صفحه بندی مبتنی بر مکان نما

  • از یک نقطه‌ی مرجع (مکان نما) برای واکشی مجموعه‌ی بعدی نتایج استفاده می‌کند.
  • مکان نما معمولاً یک شناسه‌ی منحصر به‌فرد یا ترکیبی از فیلدها است که ترتیب مرتب سازی را تعریف می‌کنند (به‌عنوان مثال، تاریخ و شناسه).
  • عملکرد، صرف‌نظر از عمق صفحه، ثابت می‌ماند. جستجوی مستقیم ردیف‌ها بر اساس مکان نما.
  • پیاده سازی پیچیده‌تر.
  • هیچ راه مستقیمی برای محاسبه‌ی تعداد کل صفحات وجود ندارد.
  • نیاز به مدیریت دقیق ترتیب مرتب‌سازی و کدگذاری مکان نما.
  • بهترین گزینه برای APIهای حیاتی از نظر عملکرد، فیدهای بی‌درنگ و رابط‌های اسکرول بی نهایت.

مقایسه عملکرد

  • آزمایش‌ها با 1 میلیون رکورد، بهبود عملکرد 17 برابری را با صفحه‌ی بندی مبتنی بر مکان نما در مقایسه با صفحه بندی مبتنی بر آفست، هنگام دسترسی به صفحات عمیق‌تر نشان داد.
  • زمان اجرای صفحه بندی مبتنی بر آفست، با آفست‌های بزرگتر به طور قابل توجهی افزایش یافت.
  • زمان اجرای صفحه بندی مبتنی بر مکان نما ثابت ماند.

فهرست بندی

  • یک فهرست ترکیبی در (تاریخ DESC، شناسه DESC) برای عملکرد صفحه بندی مبتنی بر مکان نما بسیار مهم است.
  • مقایسه تاپل در SQL (با استفاده از ROW(date, id) <= ROW(@date, @lastId)) برای بهینه ساز پرس و جو برای استفاده‌ی مؤثر از فهرست ترکیبی ضروری است. EF Core می‌تواند این کار را با EF.Functions.LessThanOrEqual و ValueTuple انجام دهد.

ملاحظات کلیدی

  • صفحه بندی مبتنی بر مکان نما را انتخاب کنید: برای APIهای حیاتی از نظر عملکرد، فیدهای بی‌درنگ، اسکرول بی‌نهایت یا زمانیکه کاربران اغلب به صفحات عمیق دسترسی دارند.
  • صفحه بندی مبتنی بر آفست را انتخاب کنید: برای رابط‌های مدیریت، مجموعه داده‌های کوچک یا زمانیکه تعداد صفحات از قبل مورد نیاز است.
  • برای عملکرد بهینه صفحه بندی مبتنی بر مکان نما، از مقایسه‌های تاپل و فهرست‌های مناسب استفاده کنید.



مشاهده مطلب اصلی