[僅限PaaS]{class="badge informative" title="僅適用於雲端專案(Adobe管理的PaaS基礎結構)和內部部署專案的Adobe Commerce 。"}
ACSD-62577:店面搜尋效能最佳化
ACSD-62577修補程式透過最佳化查詢和表格索引,修正店面搜尋查詢效能緩慢的問題。 此修補程式可用於Quality Patches Tool (QPT) 1.1.56。修補程式ID為ACSD-62577。 請注意,此問題已排程在Adobe Commerce 2.4.8中修正。
受影響的產品和版本
已為Adobe Commerce版本建立修補程式:
Adobe Commerce (所有部署方法) 2.4.6、2.4.7-p2
與Adobe Commerce版本相容:
Adobe Commerce (所有部署方法) 2.4.4 - 2.4.7-p3
magento/quality-patches套件更新至最新版本,並在Quality Patches Tool上檢查相容性:搜尋修補程式頁面。 使用修補程式ID作為搜尋關鍵字,以尋找修補程式。問題
大型的search_query資料表會顯著減慢店面搜尋的速度,因為查詢效率不高且缺少最佳化的資料表索引,所以會增加前端回應時間。
要再現的步驟:
-
使用效能工具組
small.xml設定Adobe Commerce Develop。 -
存取SQL命令列,並使用下列命令刪除
search_query表格:code language-none SET FOREIGN_KEY_CHECKS = 0; DROP TABLE search_query; SET FOREIGN_KEY_CHECKS = 1; -
將大量記錄填入
search_query表格,例如: 400萬筆記錄。 -
觸發重新索引和排清快取。
code language-none bin/magento indexer:reindex bin/magento c:c bin/magento c:f -
啟用資料庫偵錯記錄檔:
code language-none bin/magento dev:query-log:enable -
在店面搜尋列中搜尋字詞,例如
http://your_magento_instance/default/catalogsearch/result/?q=test. -
檢查
db.log是否有下列SQL的查詢執行時間:code language-none SELECT COUNT(*) FROM ( SELECT DISTINCT `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 = 'test')
預期結果:
查詢執行時間已最佳化,因此處理大型search_query資料表時,回應時間的增加不那麼明顯。
實際結果:
由於處理大型search_query資料表的效率低,查詢執行時間大幅增加:
TIME: 10.8520 seconds
套用修補程式
若要套用個別修補程式,請根據您的部署方法使用下列連結:
- Adobe Commerce或Magento Open Source內部部署: Quality Patches Tool 指南中的>使用狀況Quality Patches Tool。
- 雲端基礎結構上的Adobe Commerce:雲端基礎結構上的Commerce指南中的升級和修補程式>套用修補程式。
相關閱讀
若要進一步瞭解Quality Patches Tool,請參閱: