ホームページ >データベース >mysql チュートリアル >MySQL チューニングが Laravel のパフォーマンスを向上させる方法
MySQL 構成のチューニングは、データベースの専門家や管理者によって実装されるデータベース管理の重要なコンポーネントです。ハードウェアとワークロードに合わせてデータベースを構成することを目的としています。しかし、データベース管理の領域を超えて、MySQL 構成チューニングの有用性はほとんど無視されています。
私たちは、MySQL のチューニングが Web アプリのパフォーマンスに大きな影響を与える可能性があると仮説を立てています。 MySQL チューニングの価値を示すことができれば、企業や組織はこの実践を大規模に導入することに熱心になるかもしれません。
チューニングによるアプリケーションのパフォーマンスの向上は、次の領域に対処する包括的なアプローチによって最も効果的に達成されます。
経験豊富な開発者の多くは、データベースのパフォーマンスのチューニングをアプリのパフォーマンスを向上させる機会として捉えていません。これは、この分野についてほとんど知識がないためです。彼らはコードベースの最適化に多くの時間を費やしていますが、投資した時間とエネルギーに見合った価値のある結果が得られなくなる点に達します。 MySQL のチューニングが人気のオープンソース Web アプリケーションのパフォーマンスにどのようなプラスの影響を与えるかに関する私たちの研究は、この事実を開発者に示すことを目的としています。
Laravel Aimeos のテスト手順では、シードされたデータを使用して構成の前後でアプリのパフォーマンスを比較できます。最初にデフォルト構成でテストを実行することで、調整された構成と比較するための貴重な制御結果が得られます。
次のプロセスを使用して各アプリケーションを準備し、テストしました。
テスト中の JMeter テスト、MySQL ステータス、および MySQL 変数を Github で公開しました。
この調査中に調査した指標は次のとおりです:
ワークロードを比較するために、CPU 使用率 と 1 秒あたりのクエリ数 のメトリクスを収集しました。
Aimeos Laravel は、オンライン ショップ、マーケットプレイス、B2B アプリを作成するための人気のある e コマース Web アプリ フレームワークです。 Aimeos を使用すると、ユーザーは 10 億を超えるアイテムをサポートするように拡張できる Laravel 用の API ファーストの e コマース ショップを作成できます。 30 以上の言語で利用でき、インストール数は 300,000 を超えています。
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
Aimeo Laravel のテスト結果では、デフォルト構成と調整された構成の間で劇的なパフォーマンスの向上が示されました。
MySQL の最適化により、平均サーバーの応答時間が大幅に改善され、1.4 秒から 800 ミリ秒未満に短縮されました。
応答時間 (レイテンシ) は 42% 減少し、平均 CPU 使用率 は 86% 減少しました。一方、1 秒あたりのクエリ数 は、以前と比べて 291% も増加しました。 1 秒あたり 12 ~ 35 クエリ。
結果のグラフは以下でご覧いただけます:
応答時間 (ミリ秒)、Aimeos で調整された MySQL 構成とデフォルト
CPU 使用率 (%)、Aimeos で調整された MySQL 構成とデフォルト
1 秒あたりのクエリ数、Aimeo が調整した MySQL 構成とデフォルト
私たちは、Initlab 社の Laravel 開発者である Gevorg Mkrtchyan 氏と Sergey Sinitsa 氏と協力して、この一連の疑問を調査しました。彼らの専門知識に非常に感謝しています。
Sergey は Aimeos をデプロイし、Gevorg はデータベースをシードするためのコードを準備しました。
Aimeos Laravel を使用したテスト手順では、データベースの構成後に 応答時間 (レイテンシー)、CPU 使用率、および 1 秒あたりのクエリ数 が大幅に改善されたことがわかりました。サーバー構成。
応答時間 (レイテンシ) は 42% の間で低下し、CPU 使用率 は 86% 低下しました。 Aimeos Laravel 500MB では 1 秒あたりのクエリ数 が 291% 増加しました。
結論として、MySQL チューニングはデータベース管理の重要な側面であり、Laravel アプリケーションのパフォーマンスに大きな影響を与える可能性があります。 Web アプリケーションのパフォーマンスが低いと、ページの読み込み時間が長くなり、リクエスト処理が遅くなり、ユーザー エクスペリエンスが低下する可能性があり、SEO や販売に悪影響を与える可能性があります。 MySQL チューニングで Web アプリのパフォーマンスを最適化することで、企業や組織は売上、ページビュー、コンバージョン率、SEO ランキングを向上させることができます。
この調査により、Laravel アプリケーションのパフォーマンスを向上させる手段として MySQL チューニングの価値を示し、Laravel 開発者がアプリのパフォーマンスを最適化する際にこの実践を考慮することを奨励したいと考えています。
Releem などのツールを使用すると、データベースが最適なパフォーマンスになるように自動的に構成され、ソフトウェア開発チームの負担が軽減されます。
以上がMySQL チューニングが Laravel のパフォーマンスを向上させる方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。