WordPress 6.1 که برای نوامبر ۲۰۲۲ برنامه ریزی شده است، به لطف ذخیره پرس و جوی پست جدید، “بهبود گسترده ای در عملکرد پایگاه داده” خواهد داشت.
این ویژگی جدید نوید عملکرد سریعتر وبسایتهای وردپرس را میدهد.
بهبود دقیق حافظه پنهان مربوط به ذخیره پرس و جوی پست است.
در اطلاعیه رشته توییتر، شخصی پرسید که آیا این بهبود قبلاً در نسخه ۶.۰ راه اندازی شده است.
بهبود گسترده
طبق گفته مشارکتکننده اصلی وردپرس که روی این پروژه کار کرده است، ویژگی ذخیرهسازی منجر به بهبود چشمگیری خواهد شد.
شرکت کننده اصلی توئیت کرد:
“در وردپرس ۶.۱، بهبود زیادی در عملکرد پایگاه داده وجود دارد.
پرس و جوهای پایگاه داده در WP_Query اکنون در حافظه پنهان هستند. بلیطی که بیش از ۵ سال روی آن کار می کردم ادغام شد.
این باید منجر به میلیاردها پرسوجوی پایگاه داده کمتر تکرار شود.»
یک پیشنویس یادداشت توسعه نیز حاوی اطلاعات بیشتر در مورد حافظه پنهان است:
“WordPress 6.1 شامل بهبودی در نحوه اجرای پرسوجوهای پایگاه داده در کلاس “WP_Query” است، به طوری که نتیجه جستجوهای پایگاه داده در حافظه پنهان شی ذخیره میشود.
این بدان معناست که اگر همان کوئری پایگاه داده بیش از یک بار اجرا شود، نتیجه از حافظه پنهان بارگیری می شود.
برای کسانی که از کش کردن اشیاء دائمی استفاده میکنند، این بدان معناست که تا زمانی که حافظههای پنهان باطل نشود، کوئری پایگاه داده دوباره اجرا نمیشود و در نتیجه تعداد پرسوجوهای بسیار کمی به پایگاه داده میشود.
آنها پرسیدند:
«متشکرم! آیا قبلاً بهبودی در نسخه ۶.۰ وجود نداشت؟
به همین دلیل، ما در فروشگاههای بزرگ وو مشکلات عمده داشتیم: ناپدید شدن دستهها در صفحات بایگانی زمانی که فقط دستههای فرزند بررسی میشوند، نه دستهبندی سطح بالا (والد).
در مورد یادداشت با زمینه بیشتر کنجکاو هستید”
متعهد کننده هسته وردپرس پاسخ داد:
“ما همیشه در حال بهبود عملکرد پایگاه داده هستیم.
در نسخه ۶.۰ حافظه نهان پرس و جوی اصطلاحی بهبود یافته است. این ذخیره پرس و جوی پست است. مرتبط اما مشابه نیست.
این مشکل در نسخه ۶.۰.۱ اصلاح شد. من خودم آن را وصله کردم.”
پایگاه داده و پرسشهای وردپرس
وردپرس بخشهای مختلف وبسایت را در یک پایگاه داده ذخیره میکند.
یک پایگاه داده حاوی اطلاعاتی درباره سایت سازماندهی شده در جداول است.
برای مثال، تمام محتوای پستهای صفحه وب در یک جدول ذخیره میشود.
وقتی شخصی از یک صفحه وب بازدید می کند، وردپرس پایگاه داده را برای جستجو و یافتن محتوای آن صفحه وب در پایگاه داده “پرس و جو” می کند.
WordPress برای هر صفحه وب درخواستی چندین پرس و جو در پایگاه داده ایجاد می کند و این کار را برای هر بازدید کننده سایت انجام می دهد.
در نتیجه وقتی هزاران بار در دقیقه اتفاق میافتد، میتواند به یک بار سنگین روی سرور تبدیل شود و در نتیجه عملکرد پایگاه داده کندتر شود که به نوبه خود سرعت کل سایت را کند میکند.
با این ویژگی جدید ذخیرهسازی پایگاه داده، به جای ایجاد پرس و جو پایگاه داده، ابتدا بررسی میکند که آیا آنچه به دنبال آن است در حافظه پنهان است یا خیر و اطلاعات را از آنجا بیرون میکشد.
این مشابه سفارش دادن برای ناهار است و به جای اینکه منتظر باشد تا ناهار آماده شود، سفارش گیرنده به زیر پیشخوان می رسد و بلافاصله آن را تولید می کند.
پاسخ از انجمن وردپرس
اعلان غیر رسمی با اشتیاق دریافت شد.
تبریک. چنین تأثیر عظیمی.
— Elie Sloïm (@ElieSl) 202 سپتامبر، ۲۷ سپتامبر
بازی منصفانه برای شما، این از بسیاری جهات بسیار بزرگ است. نمی توان منتظر ماند تا این را امتحان کنید. با تشکر فراوان برای تمام تلاش و پشتکار شما!
— Simon Pollard (@smp303) 22 سپتامبر، ۲۲ سپتامبر
خیلی خوبه، جونی! بسیار جالب است که می توانید در آن مقیاس تأثیر مثبتی داشته باشید.
— کیث دوون (@keithdevon) 22 سپتامبر، ۲۲ سپتامبر
درخشنده! همیشه از من اشکال داشت که باید از حلقه ها عبور می کردی تا از درخواست های تکراری با این استفاده نکنی.
— جان براون (@jb510) 22 سپتامبر ۲۰
مشکلات لحظه آخری در حال رفع شدن
با وجود توئیت مشتاقانه ای که اعلام کرد این ویژگی در نسخه بعدی وردپرس وجود خواهد داشت، یک مشکل لحظه آخری به وجود آمد که به نظر می رسید در مورد اینکه آیا این ویژگی به نسخه بعدی وردپرس راه پیدا می کند یا نه.
بلیت GitHub برای پروژه کش بسته شد، به این معنی که به نظر می رسید همه اشکالات برطرف شده و تمام شده است.
اما ساعاتی بعد همان مشارکت کننده وردپرس بلیط را دوباره باز کرد زیرا مشکلات جدیدی کشف شد.
مشکل کشف شده مربوط به حافظه پنهان اشیاء مداوم است.
آنها توضیحی را نوشتند :
“باز کردن مجدد، زیرا در هنگام ذخیره سازی دائمی اشیا چند مشکل را کشف کرده ام.
مسئله ۱ – هنگامی که ذخیره اشیاء دائمی فعال باشد، افزودن حافظه پنهان بسیار فراخوانی می شود. این به این دلیل است که update_post_caches نامیده می شود. وقتی کش شی فعال است، این تابع نباید فراخوانی شود.
مسئله ۲ – مجموعه کش هر اجرا WP_Query نامیده می شود، نه تنها اولین آن. ۹۰-wrap”>
یک نسخه کششی جدید GitHub برای سند باز شد رفع مشکلات جدید کشف شده.
تأیید شد: کش پایگاه داده در وردپرس ۶.۱ خواهد بود
من از طریق پیام مستقیم در توییتر با توسعه دهنده تماس گرفتم و او پاسخ داد که تاخیری وجود نخواهد داشت.
او تایید کرد که از امروز شش هفته دیگر باقی مانده است و این مشکلات تازه کشف شده رفع خواهند شد و ویژگی جدید کش در WordPress 6.1 گنجانده خواهد شد.
وضعیت به روز شده
چند روز بعد نسخه کششی GitHub برای این ویژگی منتشر شد به روز شد تا توجه داشته باشید که مشکلات حل شده است.
نظر اشاره کرد:
“Query: افزودن ها و مجموعه های کش بیش از حد در WP_Query ذخیره کنید.
در [۵۳۹۴۱] ذخیره پرس و جو در پایگاه داده به WP_Query اضافه شد. با این حال، در سایتهایی با فعال کردن حافظه پنهان اشیاء مداوم، این امر منجر به تعداد زیادی از مجموعههای کش غیرضروری و افزودنیهایی شد که در هر درخواست اجرا میشوند. اگر کش کوئری از قبل وجود داشته باشد و در حافظه پنهان باشد، کش تنظیم نشده است. استفاده از update_post_caches را با _prime_post_caches جایگزین کنید تا مطمئن شوید که فقط پستهایی که در حافظه پنهان نیستند، پر میشوند.”
سپس بلافاصله پس از آن نظر، مشارکتکننده اصلی توجه کرد
- رزولوشن روی ثابت تنظیم شد
- وضعیت از بازگشایی به بسته تغییر کرد
هنوز چیزی به طور رسمی اعلام نشده است، اما این غیرعادی نیست. هر نسخه حاوی صدها پیشرفت است و مهمترین آنها به طور کلی در روز انتشار واقعی برجسته میشوند.
انتظار داشته باشید که ویژگی جدیدی که عملکرد وردپرس را بهبود میبخشد در نسخه ۶.۱ که در حال حاضر برای نوامبر ۲۰۲۲ برنامهریزی شده است، قرار گیرد.
تصویر ویژه توسط Shutterstock/iViDI Studio