در نمونهکد بالا در نسخهٔ اشتباه، هر بار برای گرفتن تنظیمات از دیتابیس یک کوئری جدید اجرا میشود و کل جدول settings در هر درخواست دوباره خوانده میشود؛ این کار هم فشار زیادی به دیتابیس وارد میکند و هم در لود بالا میتواند گلوگاه جدیِ کارایی ایجاد کند.
با استفاده از یک لایهٔ caching سطحبرنامه (مثلاً ذخیره در یک متغیر static داخل تابع یا استفاده از APCu / Redis) میتوانید نتایج را فقط یکبار بخوانید و در ادامهٔ طول عمر درخواست از همان دادهٔ cache شده استفاده کنید. این کار باعث کاهش چشمگیر تعداد کوئریها، کاهش زمان پاسخ و آزاد شدن منابع دیتابیس در شرایط ترافیک بالا میشود.
در سناریوهایی مثل بارگذاری مکرر تنظیمات اپلیکیشن، session-less API ها یا اسکریپتهایی که چندین کلاس مختلف مدام از تنظیمات استفاده میکنند، پیادهسازی یک Config Repository با cache (مثل نسخهٔ اصلاحشده) نسبت به فراخوانی مستقیم دیتابیس در هر مرتبه، انتخاب بسیار بهینهتر و حرفهایتری است.
🔖 #PHP #پی_اچ_پی
👤 Developix
💎 Channel: @DevelopixPHP
Post #89
807


- 👍 4
- ❤ 1
- 🔥 1