本頁說明 MySQL 適用的 Cloud SQL 索引建議工具,以及如何查看和套用索引建議。
MySQL 適用的 Cloud SQL 提供全代管的索引建議工具,可追蹤資料庫定期處理的查詢。索引建議工具會定期分析這些查詢,建議可提升查詢效能的新索引。索引建議工具可協助您偵測及修正系統和查詢的效能問題。
索引顧問的運作方式
索引建議工具可協助您改善查詢處理作業,方法如下:
- 建議一組索引,並提供建立索引的 SQL 指令。
- 提供資料,協助您評估建議的索引,例如預估的儲存空間大小,以及索引對查詢的影響。
CREATE INDEX
指令。追蹤的查詢都是經過正規化處理的查詢,且已移除所有常值。索引建議會經過靜態資料加密。
在 MySQL 適用的 Cloud SQL 中,您可以使用資料庫旗標設定及調整索引建議工具。詳情請參閱「索引建議指標」。限制
MySQL 適用的 Cloud SQL 索引建議工具設有下列限制:
- 索引建議工具只會提供
CREATE INDEX
建議。 - 索引建議工具不支援下列設定的執行個體:
- Cloud SQL Enterprise 版執行個體
- 使用共用核心機器類型的執行個體
事前準備
如要取得索引建議,您必須使用 Cloud SQL Enterprise Plus 版本,並為 Cloud SQL 執行個體啟用 Cloud SQL Enterprise Plus 版本的查詢洞察。
必要角色和權限
如要取得取得索引建議所需的權限,請要求管理員授予您 Cloud SQL 執行個體所在專案的 Cloud SQL 檢視者 (roles/cloudsql.viewer
) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
這個預先定義的角色具備取得索引建議所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
如要取得索引建議,必須具備下列權限:
-
databaseinsights.recommendations.query
-
databaseinsights.resourceRecommendations.query
啟用索引建議工具建議
為 Cloud SQL Enterprise Plus 版本啟用查詢洞察時,系統會自動啟用索引建議。
停用索引建議工具建議
如要停用索引建議,必須先停用 Cloud SQL Enterprise Plus 版本的查詢洞察功能。
如要停用 Cloud SQL Enterprise Plus 版本的索引建議和查詢洞察,請參閱「停用 Cloud SQL Enterprise Plus 版本的查詢洞察」。
查看索引建議工具建議
Cloud SQL 會定期自動執行索引建議分析。如要查看索引建議工具的建議,請使用「查詢洞察」資訊主頁。 您也可以隨時以表格或要求形式查看及查詢索引顧問建議,或要求隨選分析和報表。
在查詢洞察資訊主頁中查看及篩選建議
-
前往 Trusted Cloud 控制台的「Cloud SQL Instances」頁面。
- 如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。
- 按一下「查詢洞察」。
- 索引顧問建議會顯示在「熱門查詢和標記」部分的「建議」欄中。
- 選用:如要只查看有
CREATE INDEX
建議的查詢,請新增「建議:建立索引」篩選條件。
查看查詢的最佳化建議
如要查看特定查詢的索引建議,請按照下列步驟操作:
-
前往 Trusted Cloud 控制台的「Cloud SQL Instances」頁面。
- 如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。
- 按一下「查詢洞察」。
- 在「熱門查詢和標記」部分,按一下「查詢」。
- 如要查看查詢的建議詳細資料,請執行下列其中一項操作:
- 按一下查詢,進一步瞭解所選查詢的建議,包括下列資訊:
- 效能影響 (高、中和低):建立所有建議索引後,預估的查詢速度。
- 建議:建立索引建議。
- 受影響的資料表:建立索引時受影響的資料表數量。
- 額外預估儲存空間需求:建立所有建議索引所需的預估儲存空間大小。
- 受影響的查詢數量:受索引建議影響的工作負載查詢總數。索引可提升多項查詢的效能。
- 按一下特定查詢的「建立索引」,即可查看建立索引的詳細建議,進而提升查詢效能。
- 按一下查詢,進一步瞭解所選查詢的建議,包括下列資訊:
以資料庫表格檢視畫面查看建議
您可以在 mysql
資料庫中找到下表,並從中讀取結果:
mysql.cloudsql_db_advisor_recommended_indexes
:列出每個資料庫建議的新索引。這份報告也包含每個索引所需的儲存空間預估值,以及每個索引可能影響的查詢數量。
舉例來說,如要以表格格式查看最近一次索引建議分析的結果,請執行下列查詢:
SELECT * FROM mysql.cloudsql_db_advisor_recommended_indexes;
建立建議的索引
您可以從「查詢洞察」資訊主頁或資料庫表格檢視畫面建立建議索引。
使用查詢洞察資訊主頁建立建議的索引
如要使用「查詢洞察」資訊主頁建立建議的索引,請按照下列步驟操作:
-
前往 Trusted Cloud 控制台的「Cloud SQL Instances」頁面。
- 如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。
- 按一下「查詢洞察」。
- 在「各資料庫負載的最大維度」表格中,按一下「查詢」。
- 按一下特定查詢的「建立索引」。
- 按一下「複製所有索引指令」。
CREATE INDEX
指令會複製到剪貼簿。 - 透過指令列連線至主要執行個體。
如要建立建議的索引,請執行複製到剪貼簿的指令,例如:
CREATE INDEX ON "public"."demo_order" ("customer_id");
使用資料庫表格檢視畫面建立建議的索引
mysql.cloudsql_db_advisor_recommended_indexes
資料表的 index
資料欄在每個資料列中,都包含完整的 MySQL CREATE INDEX
DDL 陳述式,用於產生該資料列中建議的索引。
如要套用該資料列的建議,請執行該 DDL 陳述式,且內容須與顯示的完全一致。
舉例來說,請參考手動執行分析時的輸出內容,使用上一節所述的查詢:
index | estimated_storage_size_in_mb
--------------------------------------------+------------------------------
CREATE INDEX ON "School"."Students"("age") | 3
(1 row)
這份報表包含一項建議:在 School
結構定義的 Students
資料表上,為 age
資料欄新增單一資料欄索引。如要套用這項建議,請輸入報表中的 DDL 查詢:
CREATE INDEX ON "School"."Students"("age");
查看受影響的查詢
-
前往 Trusted Cloud 控制台的「Cloud SQL Instances」頁面。
- 如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。
- 按一下「查詢洞察」。
- 在「各資料庫負載的最大維度」表格中,按一下「查詢」。
- 按一下特定查詢的「建立索引」。
- 按一下「顯示受影響的查詢」。
- 按一下查詢,即可瞭解受影響查詢的詳細資料。
設定索引建議工具
雖然索引顧問的預設設定適用於大多數用途,但您仍可設定各種資料庫標記,微調其行為。
根據預設,索引顧問每 24 小時執行一次。您可以使用 cloudsql_index_advisor_auto_advisor_schedule
標記修改自動排程時間,也可以使用 cloudsql_index_advisor_run_at_timestamp
標記,在特定日期/時間執行臨時分析。詳情請參閱「索引建議工具標記」。