使用索引顾问

本页面介绍 Cloud SQL for MySQL 索引顾问,以及如何查看和应用其索引建议。

Cloud SQL for MySQL 提供索引顾问,用于跟踪您的数据库处理的查询。它会定期分析这些查询,以建议可提高查询性能的新索引。

您可以将索引顾问的建议作为表来查看和查询,也可以随时请求按需分析和报告。

启用索引顾问建议

如需启用索引顾问建议,请将 cloudsql_index_advisorperformance_schema 标志添加到 Cloud SQL for MySQL 实例。

如需详细了解如何向实例添加标志,请参阅配置数据库标志

停用索引顾问建议

如需停用索引顾问建议,请从 Cloud SQL for MySQL 实例中移除 cloudsql_index_advisorperformance_schema 标志。如需详细了解如何移除实例的标志,请参阅配置数据库标志

查看索引顾问的建议

Cloud SQL for MySQL 会定期自动运行索引顾问的分析。

您可以通过 mysql 数据库中的以下表来读取其结果:

  • mysql.cloudsql_db_advisor_recommended_indexes:列出适用于每个数据库的任何建议的新索引。它还包含每个索引所需的存储空间估算值,以及每个索引可能影响的查询数量。

例如,如需查看最新索引建议分析的结果(格式设置为表),请运行以下查询:

SELECT * FROM mysql.cloudsql_db_advisor_recommended_indexes;

应用索引顾问的建议

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");

配置索引顾问

虽然索引顾问旨在借助其默认设置来适用于大多数应用场景,不过您可以通过设置各种数据库标志来微调其行为。

默认情况下,索引顾问每 24 小时运行一次。您可以使用 cloudsql_index_advisor_auto_advisor_schedule 标志修改自动安排时间,也可以使用 cloudsql_index_advisor_run_at_timestamp 标志在特定日期/时间运行临时分析。如需了解详情,请参阅索引顾问标志