MySQL 設定調優是資料庫專業人員和管理員實施的資料庫管理的重要組成部分。它的目的是配置資料庫以適應其硬體和工作負載。但在資料庫管理領域之外,MySQL 設定調優的用處很大程度上被忽視了。
我們假設 MySQL 調優可以顯著影響 Web 應用程式的效能。如果我們能夠展現MySQL調優的價值,我們相信企業和組織可能會熱衷於更大規模地結合這種實踐。
透過調優提高應用程式效能最好透過解決以下領域的綜合方法來實現:
許多經驗豐富的開發人員並不將資料庫效能調優視為提高應用程式效能的機會,因為他們對此領域知之甚少。他們花了大量時間來優化程式碼庫,但已經達到了這樣的地步:不再為投入的時間和精力帶來有價值的結果。我們對 MySQL 調優如何對流行開源 Web 應用程式的效能產生積極影響的研究旨在向開發人員展示這一事實。
我們對 Laravel Aimeos 的測試程式讓我們可以使用種子資料來比較配置前後應用程式的效能。透過首先使用預設配置運行測試,我們獲得了有價值的控制結果來與調整後的配置進行比較。
我們使用以下流程來準備和測試每個應用程式:
我們在 Github 上測試期間發布了 JMeter 測試、MySQL 狀態和 MySQL 變數。
我們在本研究中檢視的指標是:
我們收集了CPU 使用率 和每秒查詢數 指標來比較工作負載。
Aimeos Laravel 是一個流行的電子商務 Web 應用程式框架,用於建立線上商店、市場和 B2B 應用程式。借助 Aimeos,用戶可以為 Laravel 創建 API 優先的電子商務商店,該商店可以擴展以支援超過 10 億種商品。它有 30 多種語言版本,安裝量超過 30 萬次。
為了測試 Aimeos,我們開始使用 10 個使用者進行測試,但我們必須減少使用者數量,因為我們無法使用預設配置完成測試。
我們為資料庫植入了 500 Mb 資料。
我們的測驗時間是 10 分鐘。
我們使用:
Aimeos Laravel 使用的配置如下:
query_cache_type=1 query_cache_size=134217728 query_cache_limit=16777216 query_cache_min_res_unit=4096 thread_cache_size=0 key_buffer_size=8388608 max_allowed_packet=1073741824 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 innodb_buffer_pool_size=805306368 max_heap_table_size=16777216 tmp_table_size=16777216 join_buffer_size=8388608 max_connections=151 table_open_cache=2048 table_definition_cache=1408 innodb_flush_log_at_trx_commit=1 innodb_log_file_size=201326592 innodb_log_buffer_size=16777216 innodb_write_io_threads=4 innodb_read_io_threads=4 innodb_file_per_table=1 innodb_flush_method=O_DIRECT innodb_thread_concurrency=0 innodb_purge_threads=4 optimizer_search_depth=0 thread_handling=pool-of-threads thread_pool_size=2
Aimeos Laravel 測試結果展示了預設配置和調整配置之間的顯著效能改進。
MySQL 的最佳化導致平均伺服器回應時間顯著改善,減少從 1.4 秒減少到 800 毫秒以下。
回應時間(延遲) 下降了42%,平均CPU 使用率 下降了86%,而每秒查詢數 增加了令人難以置信的291%,從每秒12 至35 次查詢。
結果圖表如下:
回應時間(毫秒),Aimeos 調整 MySQL 配置與預設值
CPU 使用率 (%),Aimeos 調整的 MySQL 設定與預設值
每秒查詢數,Aimeos 調整 MySQL 配置與預設值
我們與 Initlab 公司的 Laravel 開發人員 Gevorg Mkrtchyan 和 Sergey Sinitsa 合作調查了這個問題,非常感謝他們的專業知識。
Sergey 部署了 Aimeos,Gevorg 準備了播種資料庫的程式碼。
我們使用Aimeos Laravel 進行的測試程序顯示,配置資料庫後,回應時間(延遲)、CPU 使用率 和每秒查詢數 有了顯著改進伺服器配置。
反應時間(延遲) 下降了 42%,而 CPU 使用率 下降了 86%。 每秒查詢數 Aimeos Laravel 500MB 增加了 291%。
總之,MySQL 調優是資料庫管理的重要方面,可以對 Laravel 應用程式的效能產生重大影響。效能不佳的 Web 應用程式可能會導致頁面載入時間增加、請求處理緩慢以及使用者體驗不佳,對 SEO 和銷售產生負面影響。透過使用 MySQL 調優優化 Web 應用程式的效能,企業和組織可以提高銷售額、頁面瀏覽量、轉換率和 SEO 排名。
透過這項研究,我們希望展示 MySQL 調優作為提高 Laravel 應用程式效能的一種手段的價值,並鼓勵 Laravel 開發人員在優化應用程式效能時考慮這種做法。
使用 Releem 等工具,可以自動配置資料庫以獲得最佳效能,從而減輕軟體開發團隊的負擔。
以上是MySQL 調優如何提升 Laravel 效能的詳細內容。更多資訊請關注PHP中文網其他相關文章!