تا ۳۰ درصد تخفیف هفتگی بهرام‌شید در کانال تلگرام سون هاست

مشاهده تخفیف‌ها
آموزش وردپرس

افزایش سرعت و بهینه سازی دیتابیس ووکامرس با HPOS

بر کسی پوشیده نیست که یکی از مشکلات عمده‌ی این سال‌های ووکامرس، عدم بهینه بودن دیتابیس بود؛ اطلاعات این افزونه در پایگاه داده فاقد جدول اختصاصی بوده و کلیه اطلاعات در همان جداول و متاهای پیش‌فرض خود وردپرس ذخیره میشد. تا اینکه در جدیدترین آپدیت ووکامرس این طلسم شکسته شده و حالا می‌توانید با بهینه سازی دیتابیس ووکامرس با HPOS سرعت سایت وردپرسی خود را به‌طرز چشم‌گیری افزایش دهید.

در ادامه این نوشته از وبلاگ سون هاست قصد معرفی ویژگی High-Performance Order Storage (HPOS) ووکامرس را دارم که ابتدا می‌توانید با روند کار آن آشنا شده و سپس مزایای آن را بررسی و در نهایت مراحل فعال سازی آن را با هم مرور خواهیم کرد.

افزایش سرعت و بهینه سازی دیتابیس ووکامرس با HPOS

ویژگی HPOS ووکامرس قبلا به‌عنوان «Customer Order Tables» شناخته می‌شد که از طریق افزونه‌های مختلف می‌توانستید ساختار دیتابیس را قابل فهم و بهتر کنید.

در ژانویه 2022، ووکامرس یک طرح اولیه را برای بهینه سازی دیتابیس ووکامرس از طریق بهینه‌سازی جداول سفارشی منتشر کرد و از آن زمان و با آپدیت‌های بعدی سعی شد تا به‌مرور این ویژگی به هسته خود ووکامرس اضافه شود که در نهایت در ماه مه 2022، این ویژگی در قالب نسخه بتا ارائه شد.

در نهایت از نسخه WooCommerce 8.2 که در اکتبر 2023 (همین دو روز قبل) منتشر شد، قابلیت HPOS به‌طور عمومی و تحت یک نسخه پایدار ارائه شده است که می‌توانید آن را بر روی سایت خود فعال کنید. تا پیش از این فرآیندی که در ووکامرس برای پردازش اطلاعات صورت می‌گرفت به شکل زیر بود:

تا قبل از نسخه ۸.۲ و در تمام طول این سال‌ها، کلیه ساختارهای جدول ووکامرس متکی به جداول _post و _postmeta بود. لذا کلیه داده‌های زیر که مربوط به ووکامرس بودند در این دو جدول اصلی وردپرس ذخیره میشدند

  • _wc_orders
  • _wc_order_addresses
  • _wc_order_operational_data
  • _wc_orders_meta
High-Performance Order Storage ووکامرس

چرا باید از High-Performance Order Storage استفاده کنیم؟

استفاده از ساختار بهینه سازی دیتابیس ووکامرس با HPOS یه مزیت زیر را برای فروشگاه شما فراهم خواهد کرد:

  1. افزایش سرعت و مقیاس پذیری

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

نتیجه این روند کاهش به شدت زیاد سرعت روند رسیدگی به درخواست‌های سفارش مشتری و ارائه یک تجربه کاربری مناسب است. کاربری که در حال خرید است به کندی مراحل را طی می‌کند و کاربر قبلی هم برای رهگیری سفارشات یا مشاهده تاریخچه‌های خرید خود با کندی مواجه است.

اما با فعال کردن HPOS در ووکامرس، کلیه اطلاعات مربوط به سفارشات، آدرس سفارشات و سایر اطلاعاتی که مرتبط با سفارش مشتری هستند، در جدول اختصاصی خود قرار می‌گیرند. بدین ترتیب برای پردازش چنین درخواست‌هایی دیگر لزومی ندارد که پردازش‌ها از طریق جداول پیش‌فرض وردپرس که حجم اطلاعات بسیار بیشتری دارند صورت گیرد.

بنابراین این ویژگی منجر به افزایش سرعت عملیات خواندن/نوشتن شده و مهم‌تر از آن جدول‌های مربوط به وردپرس و سایر افزونه‌ها، از جداول خود ووکامرس جدا خواهند شد. این ویژگی سطح مقیاس‌پذیری را هم بالا برده و باعث می‌شود تا ووکامرس در فروشگاه‌های بسیار بزرگ‌تر نیز به خوبی عمل کند.

  1. افزایش اطمینان و پشتیبان‌گیری از اطلاعات

مزیت دیگر HPOS فراهم کردن امکان پشتیبان گیری از اطلاعات ووکامرس به شکلی ساده‌تر است. دیگر لازم نیست نگران از دست دادن اطلاعات مربوط به سفارشات مشتری، موجودی محصولات یا اطلاعات مشتری باشید.

با پشتیبان گیری قابل اعتمادتر که در جداول اختصاصی ووکامرس در پایگاه داده وجود دارد، فرآیند پشتیبانی ساده‌تر شده و هر زمان هم که نیاز به خروجی گرفتن یا درون‌ریزی اطلاعات داشته باشید، لزومی ندارد که هم تعداد اطلاعات بیشتر (به دلیل قرارگیری داده‌ها در جداول پیش‌فرض وردپرس) و هم حجم بیشتری را که هر دو موجب سخت‌تر شدن و طولانی‌تر شدن فرآیند می‌شود را متحمل شوید.

  1. سادگی بهتر

مزیت دیگر HPOS ووکامرس نیز این است که لزومی ندارد برای یافتن اطلاعات مربوط به ووکامرس، از یک حجم بسیار بالا از اطلاعات عبور کنید.

به‌سادگی می‌توانید برای یافتن یا درک ساختار کلی داده‌ها در ووکامرس در جدولی اختصاصی و کاملا مستقل از جدول _posts عمل کنید. در توسعه افزونه‌های مبتنی بر ووکامرس نیز کارتان ساده‌تر خواهد شد که انعطاف‌پذیری و توسعه بهتری را فراهم می‌کند.

آموزش فعال سازی High-Performance Order Storage ووکامرس

برای فعال کردن HPOS ووکامرس قبل از هر چیزی آن را به جدیدترین نسخه ۸.۲ یا نسخه بالاتر از این آپدیت کنید. نسخه‌های قبل از ۸.۲ امکان فعال‌سازی این ویژگی را ندارند. سپس به ترتیب زیر عمل کنید.

بهینه سازی دیتابیس ووکامرس به HPOS
  • در پیشخوان وردپرس وارد مسیر ووکامرس> پیکربندی> پیشرفته> امکانات شوید.
  • تیک گزینه Enable compatibility mode (synchronizes orders to the posts table) را فعال کنید.
  • روی دکمه ذخیره تغییرات کلیک کنید.

با انجام این کار، در پس زمینه اقداماتی در پس زمینه به شکل زیر اجرا خواهند شد.

  • ویژگی wc_schedule_pending_batch_process بررسی خواهد کرد که آیا سفارشاتی وجود دارد که بهینه‌سازی برای آنها انجام گیرد یا خیر.
  • در صورت وجود، عمل wc_run_batch_process به‌منظور ارسال سفارشات به فضای ذخیره سازی صورت می‌گیرد تا عملیات انتقال اطلاعات ووکامرس از جداول قدیمی به جداول اختصاصی صورت گیرد.
  • از آنجا که این عمل بر اساس کرون‌جاب کار می‌کند و بسته به تعداد محصولات و خجمی که دیتابیس شما دارد ممکن است روند طولانی را طی کند به منظور مدیریت یا اجرای لحظه‌ای (خارج از زمان تعیین شده توسط کرون جاب) می‌توانید به منوی ووکامرس> وضعیت مراجعه کرده و سپس وارد تب Scheduled Actions شوید.
  • اگر عمل wc_run_batch_process در گروه Pending قرار داشت یک‌بار روی دکمه RUN کلیک کرده و بسته به تعداد محصولات و حجمی که پایگاه داده شما دارد منتظر شوید تا این عمل به‌طور کامل انجام شود.
اجرای عمل wc_run_batch_process در ووکامرس

پس از تکمیل فرآیند باید این عمل در گروه Complete مانند تصویر بالا ذخیره شده و در ستون STATUS نیز در همین وضعیت کامل شده قرار گرفته باشد.

پس از کامل شدن این فرآیند، حالا دوباره به مسیر ووکامرس> پیکربندی> پیشرفته> امکانات برگردید. مشابه تصویر زیر خواهید دید که بخش Order data storage حالا به صورت زیر تغییر کرده است.

فعال سازی High-performance order storage ووکامرس

در این مرحله کافی است دکمه رادیویی High-performance order storage (recommended) را انتخاب کرده و روی دکمه ذخیره تغییرات کلیک کنید.

توجه: در صورتی که تیک گزینه Enable compatibility mode (synchronizes orders to the posts table) همزمان با حالت High-performance order storage (recommended) فعال باشد، داده‌های سفارشی بین جداول posts/postmeta و جداول اختصاصی ووکامرس سینک خواهد شد (ایجاد یک نسخه کپی در دو جدول) که چنین حالتی موجب افزایش حجم دیتابیس شما خواهد شد. بنابراین پس از اینکه از کارکرد صحیح و کامل افزونه مطمئن شدید، تیک این گزینه را غیرفعال کنید.

کار به اتمام رسیده و حالا ضمن اینکه کلیه اطلاعات مربوط به ووکامرس از جداول پیش‌فرض وردپرس به جداول اختصاصی ووکامرس منتقل شده، از این پس نیز تمامی سفارشات در جدول اختصاصی خود ووکامرس ذخیره خواهند شد.

جمع‌بندی و کلام آخر

ووکامرس به خودی خود تا پیش از انتشار نسخه ۸.۲ یک افزونه سنگین وردپرس بود که در سایت‌هایی با تعداد محصولات بیشتر از هزارتایی، کندی سایت در حالتی که از هاست با منابع نسبتا معمولی استفاده کنید محسوس بود. بنابراین با ارائه این نسخه چنین مشکلی به لطف جدا کردن این داده‌ها و پردازش آنها در جدولی جداگانه بهبود یافته است.

خصوصا در شرایطی که یک سایت فروشگاهی، ساختار وبلاگ خود را در یک وردپرس جدا در قالب نصب وردپرس در ساب دامنه یا نصب وردپرس در ساب فولدر به‌طور جداگانه ایجاد نکرده است.

error High-performance order storage (recommended)

در صورتی که به هر دلیلی هنگام فعال‌سازی این ویژگی با خطایی مشابه تصویر بالا مواجه شدید، به این معنی است که شما از افزونه‌ای استفاده می‌کنید که با این ساختار هماهنگ نیست. برای بررسی آن کافی است در همان مسیر روی View and Manage کلیک کرده و بررسی کنید که دلیل آن چیست و متناسب با آن، تصمیم مناسب را برای جایگزینی افزونه یا رفع مشکل اتخاذ کنید.

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

امتیاز نوشته:

میانگین امتیازها: 4.1 / 5. تعداد آرا: 12

به این نوشته امتیاز دهید.

عباس صادقی

نزدیک به یک دهه است که در زمینه‌ی تولید محتوا فعالیت دارم. به‌خاطر علاقه‌ای که به حوزه وب داشتم تمرکزم رو روی مسائل پیرامون آموزش وردپرس، هاست و سرور، سئو، بازاریابی و دیجیتال مارکتینگ قرار دادم. امیدوارم که بتونم در سون هاست مقالات جامعی که حسابی اطلاعاتتون رو بالا ببره تولید کنم که از خوندنشون نهایت لذت رو ببرید. :) اگه نیاز به آموزش خاصی داشتید، تو دیدگاه‌ها اعلام کنید. با کمال میل براتون تهیه می‌کنم.

نوشته های مشابه

‫۵ دیدگاه ها

  1. سلام
    اصلا چنین گزین هایی در بخش مربوطه وجود نداره . آخرین نسخه ووکامرس روی سایت نصب هست

  2. با نسخه های جدید یوست مشکل داره و میگه ناسازگار هستند
    بنظرتون غیرفعال کردن Hpos بهتر هست یا استفاده از ورژن های قبلی یوست و فعال بودن HPOS?

  3. سلام در نسخه اخیر یوست پرمیوم کلا سایت از دسترس خارج میشه (خطای500) و فرصت بررسی نمیده
    با یکی دو ورژن قبل هم منابع هاست درگیر میشه
    در بخش افزونه های ناسازگار با Hpos این افزونه هارو نشون میده:
    یوست سئو
    درگاه سداد
    ووکامرس فارسی
    افزونه پیامک حرفه ای ووکامرس
    یکی یکی از دسترس خارج کردم, کلا با یوست سئو مشکل داره. حتی با ورژن های قبل تر هم ناسازگار نشون میده اما سایت از دسترس خارج نمیشه و صرفا منابع رو درگیر میکنه

    1. درود
      اگر از نسخه اورجینال یوست پرمیوم استفاده می‌کنید بهشون گزارش بدین بررسی کنن.
      برای درک بهتر مشکل wp_debug رو فعال کنید که مسیرهای دقیق مشکل مشخص بشه. شاید مشکل از جای دیگه باشه؛ چون داده‌هایی که مربوط به سفارشات هستند در ارتباط با داده‌های سئو نیستن که باعث تداخل بشن.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا
خرید هاست وردپرس نامحدود کلیک کنید ×