ACSD-68040:履歴の大きい MariaDB 10.6 でフロントエンド検索ページの速度が低下する
ACSD-68040 パッチは、大量の履歴検索リクエストがある MariaDB 10.6 で実行すると、フロントエンド検索ページのパフォーマンスが大幅に低下する問題を修正しました。 このパッチは、Quality Patches Tool (QPT) 1.1.72 がインストールされている場合に使用できます。 パッチ ID は ACSD-68040 です。
影響を受ける製品とバージョン
Adobe Commerce バージョン用のパッチが作成されます。
- Adobe Commerce(すべてのデプロイメント方法) 2.4.6-p12
Adobe Commerce バージョンとの互換性:
- Adobe Commerce(すべてのデプロイメント方法) 2.4.4 - 2.4.6-p12
magento/quality-patches パッケージを最新バージョンに更新し、Quality Patches Tool: Search for patches page で互換性を確認します。 パッチ ID を検索キーワードとして使用して、パッチを見つけます。問題
大量の履歴検索リクエストを処理する MariaDB 10.6 では、フロントエンド検索ページの速度が大幅に低下します。 search_query テーブルのクエリは MariaDB 10.6 では最大 13 秒かかりますが、MariaDB 11.4 では 0.5 秒未満です。
再現手順 :
-
テスト目的で、MariaDB 10.6 を使用してクリーンなインスタンスをインストールします。
-
search_queryテーブルに 200 万のエントリを入力します。 -
次の SQL クエリを実行します。
code language-none SELECT COUNT(*) FROM ( SELECT `main_table`.`query_text` FROM `search_query` AS `main_table` WHERE (main_table.store_id IN (1)) AND (main_table.num_results > 0) ORDER BY `main_table`.`popularity` DESC LIMIT 100 ) AS `result` WHERE (result.query_text = 'seed_q_0000009'); -
クエリが完了するまで約 13 秒かかることを確認します。
-
データベースを MariaDB 11.4 にアップグレードします。
-
同じ SQL クエリを再実行します。
code language-none SELECT COUNT(*) FROM ( SELECT `main_table`.`query_text` FROM `search_query` AS `main_table` WHERE (main_table.store_id IN (1)) AND (main_table.num_results > 0) ORDER BY `main_table`.`popularity` DESC LIMIT 100 ) AS `result` WHERE (result.query_text = 'seed_q_0000009'); -
クエリが約 0.4~0.5 秒で完了することを確認します。
期待される結果 :
クエリまたはテーブルの構造は、MariaDB のバージョンに関係なく、最小限の実行時間を確保するように最適化する必要があります。
実際の結果 :
クエリは、MariaDB 10.6 では約 13~15 秒、MariaDB 11.4 では 0.4~0.5 秒かかります。
パッチの適用
個々のパッチを適用するには、デプロイメント方法に応じて、次のリンクを使用します。
- Adobe CommerceまたはMagento Open Source オンプレミス:Quality Patches Tool > 使用状況 Quality Patches Tool ガイドに記載されています。
- クラウドインフラストラクチャー上のAdobe Commerce:クラウドインフラストラクチャー上のCommerce ガイドの アップグレードとパッチ / パッチの適用」を参照してください。
関連資料
Quality Patches Tool について詳しくは、以下を参照してください。
- Quality Patches Tool: 『ツールガイド』にあるクオリティパッチ セルフサービスツール。