首頁  >  文章  >  資料庫  >  MySQL 調優如何提升 PrestaShop 效能

MySQL 調優如何提升 PrestaShop 效能

王林
王林原創
2024-08-13 18:30:401100瀏覽

PrestaShop 是一個用 PHP 開發的專業、免費、開源的電子商務平台,旨在為從新創公司到大型企業的企業提供啟動、管理和擴展其線上商店的基礎設施。

PrestaShop 提供豐富的可自訂主題選擇和一整套電子商務功能,支援廣泛的功能,例如產品管理、安全支付、運輸和庫存管理,直接開箱即用。

如何提高應用程式效能

透過調優提高應用程式效能最好透過解決以下領域的綜合方法來實現:

  • 伺服器資源 — CPU、記憶體、儲存
  • 軟體配置——Linux、Nginx、Php…
  • 資料庫管理系統 (DBMS) 設定 — MySQL、PostgreSQL
  • 最佳化資料庫方案並更改索引
  • 最佳化應用程式 - 程式碼、查詢、架構......

許多經驗豐富的 PrestaShop 開發人員並不將資料庫效能調優視為提高應用程式效能的機會,因為他們對此領域知之甚少。他們花了大量時間來優化程式碼庫,但已經達到了這樣的地步:不再為投入的時間和精力帶來有價值的結果。我們對 MySQL 調優如何對流行開源 Web 應用程式的效能產生積極影響的研究旨在向用戶展示這一事實。

測試設定

用於測試的 PrestaShop 版本是 8.1.2,它專門針對 PHP 8.1 進行了最佳化。有關安裝此版本 PrestaShop 的詳細指導可以在官方文件中找到。

我們預設安裝了帶有演示資料的PrestaShop,匯出所有演示產品並多次將其作為新產品導入,然後我們安裝了多種語言用於電子商務。

我們的測試持續時間為 2 天。為了應對更長的測試週期,我們從 BlazeMeter(最長測試持續時間為 20 分鐘)切換到開源負載測試工具 Locust。

我們使用:
GCP 運算引擎實例 c2-standard-4,配備 Debian Bullseye 作為作業系統,Apache 作為 Web 伺服器,預設配置為 MariaDB 10.5,資料庫大小為 1GB。

MySQL配置

Prestashop 的調整配置:

[mysqld]
innodb_change_buffering=none
innodb_change_buffer_max_size=25
innodb_adaptive_flushing_lwm=25.000000
innodb_max_dirty_pages_pct=70.000000
innodb_autoextend_increment=48
thread_stack=299008
transaction_prealloc_size=8192
thread_cache_size=172
max_connections=172
query_cache_type=1
query_cache_size=134217728
query_cache_limit=33554432
query_cache_min_res_unit=4096
key_buffer_size=8388608
max_heap_table_size=16777216
tmp_table_size=16777216
innodb_buffer_pool_size=3355443200
innodb_log_file_size=25165824
innodb_file_per_table=1
sort_buffer_size=2097152
read_rnd_buffer_size=262144
bulk_insert_buffer_size=8388608
myisam_sort_buffer_size=8388608
innodb_buffer_pool_chunk_size=134217728
join_buffer_size=8388608
table_open_cache=2048
table_definition_cache=512
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=16777216
innodb_write_io_threads=4
innodb_read_io_threads=4
innodb_flush_method=O_DIRECT
innodb_thread_concurrency=0
optimizer_search_depth=0
innodb_purge_threads=4
thread_handling=one-thread-per-connection
thread_pool_size=6

測試結果

PrestaShop 的效能評估顯示優化後顯著增強。

值得注意的是,反應時間經歷了顯著減少,從 610 毫秒降至 370 毫秒,改善了 39%。同樣,網站處理請求的能力激增了 50%,從每秒 8 個請求增加到 12 個請求。

CPU 使用率 有所下降,從 100% 的滿載下降到 90%,負載10% 減少 負載。最令人印象深刻的是,MySQL 的查詢處理能力從每秒 5078 次查詢躍升至 7816 次查詢,大幅提升 53%。

我們錄製了截圖視頻,以顯示應用程式推薦的 MySQL 配置後對響應時間的影響。

How MySQL Tuning Can Improve PrestaShop Performance

How MySQL Tuning Can Improve PrestaShop Performance

Prestashop 調整 MySQL 設定與預設配置

測試結果圖表如下:

How MySQL Tuning Can Improve PrestaShop Performance
回應時間(毫秒),Prestashop 調整的 MySQL 配置與預設值

How MySQL Tuning Can Improve PrestaShop Performance
CPU 使用率 (%),PrestaShop 調整的 MySQL 設定與預設值

How MySQL Tuning Can Improve PrestaShop Performance
每秒查詢數,Prestashop 調整的 MySQL 配置與預設值

社區貢獻

在設定測試環境時,我們與 Multiservicios Austral 執行長 Giuseppe Pompeo 密切合作。 Giuseppe 的公司處於智利數位服務的前沿,尤其以其 PrestaShop 電子商務的專業知識而聞名。他們的團隊得到了 PrestaShop 的認可和認證,六年多來一直在該領域提供專門和專業的服務。

Giuseppe 的參與對於我們的伺服器準備就緒、啟動我們的網站以及向其填充初始資料至關重要。他在雲端基礎設施方面的豐富經驗以及對優化 PrestaShop 等電子商務平台的熱衷在確保我們的測試順利進行方面發揮了重要作用。我們非常感謝 Giuseppe 為我們的專案帶來的知識和效率。

結論

我們使用PrestaShop 進行的測試過程顯示,配置資料庫伺服器配置後,回應時間(延遲)CPU 使用率每秒查詢數均有所改善.

反應時間(延遲) 下降了 39%,而 CPU 使用率下降了 10%每秒查詢數 PrestaShop 增加了 53%。 網站每秒請求數 +50%。

透過這項研究,我們希望展示 MySQL 調優作為提高 PrestaShop 應用程式效能的一種手段的價值,並鼓勵 PrestaShop 用戶在優化其網站效能時考慮這種做法。

使用 Releem 等工具,可以快速輕鬆地配置資料庫以獲得最佳效能,從而減輕軟體開發團隊的負擔。

以上是MySQL 調優如何提升 PrestaShop 效能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn