این مقاله به مقایسه صفحه بندی مبتنی بر آفست و مکان نما میپردازد و مزایای عملکرد صفحه بندی مبتنی بر مکان نما را برای مجموعه دادههای بزرگ نشان میدهد.
صفحه بندی مبتنی بر آفست
- روش سنتی پیاده سازی صفحه بندی است؛ با استفاده از
SKIP و TAKE (در SQL: OFFSET و LIMIT). - پیادهسازی ساده.
- با افزایش آفست، عملکرد به طور قابل توجهی کاهش مییابد. پایگاه داده باید تمام ردیفهای قبل از آفست را اسکن و حذف کند.
- خطر از دست دادن یا تکرار موارد، با تغییر دادهها بین صفحات.
- مناسب برای مجموعه دادههای کوچک یا زمانیکه تعداد کل صفحات مورد نیاز است.
صفحه بندی مبتنی بر مکان نما
- از یک نقطهی مرجع (مکان نما) برای واکشی مجموعهی بعدی نتایج استفاده میکند.
- مکان نما معمولاً یک شناسهی منحصر بهفرد یا ترکیبی از فیلدها است که ترتیب مرتب سازی را تعریف میکنند (بهعنوان مثال، تاریخ و شناسه).
- عملکرد، صرفنظر از عمق صفحه، ثابت میماند. جستجوی مستقیم ردیفها بر اساس مکان نما.
- پیاده سازی پیچیدهتر.
- هیچ راه مستقیمی برای محاسبهی تعداد کل صفحات وجود ندارد.
- نیاز به مدیریت دقیق ترتیب مرتبسازی و کدگذاری مکان نما.
- بهترین گزینه برای APIهای حیاتی از نظر عملکرد، فیدهای بیدرنگ و رابطهای اسکرول بی نهایت.
مقایسه عملکرد
- آزمایشها با 1 میلیون رکورد، بهبود عملکرد 17 برابری را با صفحهی بندی مبتنی بر مکان نما در مقایسه با صفحه بندی مبتنی بر آفست، هنگام دسترسی به صفحات عمیقتر نشان داد.
- زمان اجرای صفحه بندی مبتنی بر آفست، با آفستهای بزرگتر به طور قابل توجهی افزایش یافت.
- زمان اجرای صفحه بندی مبتنی بر مکان نما ثابت ماند.
فهرست بندی
- یک فهرست ترکیبی در (تاریخ DESC، شناسه DESC) برای عملکرد صفحه بندی مبتنی بر مکان نما بسیار مهم است.
- مقایسه تاپل در SQL (با استفاده از
ROW(date, id) <= ROW(@date, @lastId)) برای بهینه ساز پرس و جو برای استفادهی مؤثر از فهرست ترکیبی ضروری است. EF Core میتواند این کار را با EF.Functions.LessThanOrEqual و ValueTuple انجام دهد.
ملاحظات کلیدی
- صفحه بندی مبتنی بر مکان نما را انتخاب کنید: برای APIهای حیاتی از نظر عملکرد، فیدهای بیدرنگ، اسکرول بینهایت یا زمانیکه کاربران اغلب به صفحات عمیق دسترسی دارند.
- صفحه بندی مبتنی بر آفست را انتخاب کنید: برای رابطهای مدیریت، مجموعه دادههای کوچک یا زمانیکه تعداد صفحات از قبل مورد نیاز است.
- برای عملکرد بهینه صفحه بندی مبتنی بر مکان نما، از مقایسههای تاپل و فهرستهای مناسب استفاده کنید.
مشاهده مطلب اصلی