全部產品
Search
文件中心

PolarDB:如何選取統計資訊自動採集策略

更新時間:Nov 08, 2024

本文介紹了統計資訊採集的三種策略和採集建議。

SQL查詢執行計畫的好壞對資料庫效能有重要的影響,為了給最佳化器CBO提供準確的統計資訊用於產生更優的執行計畫,PolarDB-X會在後台發起統計資訊採集任務。

統計資訊採集說明

PolarDB-X包括以下三種採集策略:

名稱

採集頻率

採集SQL特徵

參數控制

Auto analyze

每周一次,預設02:00-05:00

  1. 包含WHERE (RAND() < 3.9623395E-4) 的查詢語句。

  2. 注釋中IP為null的語句。

  3. 包含HYPERLOGLOG函數的查詢語句。

ENABLE_BACKGROUND_STATISTIC_COLLECTION

information_schema查詢

每天一次,預設02:00-05:00

SELECT table_schema, table_name, table_rows FROM information_schema.tables WHERE table_schema IN (xxx,xxx,xxx....) AND table_name IN (yyy,yyy,yyy...)

不涉及

即時反饋採集

資料量更新(insert或delete)超過上次記錄表資料行20%的時候觸發。

同Auto analyze一致

不涉及

注意事項

  • 在表資料量比較大的情況下,儲存節點可能由於執行統計資訊採集任務,在淩晨出現IOPS增高的情況。

  • 在非淩晨時間出現IOPS升高,有可能是以下兩種情況:

    1. 表資料量過大,導致統計資訊採集任務針對單個邏輯表採集時間過長,任務從淩晨運行至非淩晨時間。

    2. 資料發生劇烈變化的情境,常見於資料匯入過長,會觸發即時的統計資訊採集。

建議

  1. 如果不希望在淩晨執行採集,可以在控制台參數設定頁面,將ENABLE_BACKGROUND_STATISTIC_COLLECTION參數的值設定為False,關閉後台定時採集任務與即時採集任務。任務關閉後,建議定期通過手動執行analyze table [table_name];語句,在業務可以接受的時間進行統計資訊採集。

  2. 如果希望立即停止採集任務,請執行以下步驟:

    1. 執行show full physical_processlist where info like '%rand%';,查看儲存節點正在執行的SQL語句;

    2. 通過kill語句關閉對應的採集SQL。例如kill '0-0-222';,'0-0-222'含義為0號儲存節點,0號分庫上的ID為222的查詢語句。