This page describes how to manage the number of joins without indexes in your instance's join buffer. This recommender is called Create indexes or reconfigure join settings.
Every day, this recommender monitors the number of joins without indexes in the
join buffer. The join buffer is a per-connection memory buffer used
for storing data during join operations that cannot use indexes. If the
aggregated number of joins without indexes is greater than 500 per hour, then it
recommends to create an index or increase the value of join_buffer_size
.
For more information on increasing the value of join_buffer_size
, see
Other memory consumption.
Pricing
The Create indexes or reconfigure join settings recommender is in the Standard Recommender pricing tier.
Before you begin
Required roles and permissions
To get the permissions to view and work with insights and recommendations, ensure that you have the required Identity and Access Management (IAM) roles.
Task | Role |
---|---|
View recommendations |
recommender.cloudsqlViewer or
cloudsql.admin
|
Apply recommendations |
cloudsql.editor
or cloudsql.admin
|
List the recommendations
To list the recommendations, follow these steps:
Console
To list recommendations about instance performance, follow these steps:
- Go to the Cloud SQL Instances page.
- On the Improve instance health by investigating issues and acting on recommendations banner, click Expand Details.
Alternatively, follow these steps:
Go to the Recommendation Hub. See also Find and applyrecommendations with the Recommendations.
In the All recommendations card, click Performance .
gcloud
Run the gcloud recommender recommendations list
command as follows:
gcloud recommender recommendations list \ --project=PROJECT_ID \ --location=LOCATION \ --recommender=google.cloudsql.instance.PerformanceRecommender \ --filter=recommenderSubtype=MYSQL_CREATE_INDEX_OR_RECONFIG_JOIN_BUFFER
Replace the following:
- PROJECT_ID: your project ID
- LOCATION: a region where your instances are located, such as
us-central1
API
Call the recommendations.list
method as follows:
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/recommenders/google.cloudsql.instance.PerformanceRecommender/recommendations
Replace the following:
- PROJECT_ID: your project ID
- LOCATION: a region where your instances are located, such as
us-central1
View insights and detailed recommendations
To view insights and detailed recommendations, follow these steps:
Console
Do one of the following:
On the Performance Recommendations page, click the Performance recommendations card and then click Create indexes or reconfigure join settings. The recommendation panel appears, which contains insights and detailed recommendations for the instance.
On the Instances page, click Create indexes or reconfigure join settings. The list of instances displays only those instances for which the recommendation applies.
gcloud
Run the gcloud recommender insights list
command as follows:
gcloud recommender insights list \ --project=PROJECT_ID \ --location=LOCATION \ --insight-type=google.cloudsql.instance.PerformanceInsight \ --filter=insightSubtype=MYSQL_HIGH_JOINS_WITHOUT_INDEXES
Replace the following:
- PROJECT_ID: your project ID
- LOCATION: a region where your instances are located, such as
us-central1
API
Call the insights.list
method as follows:
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.cloudsql.instance.PerformanceInsight/insights
Replace the following:
- PROJECT_ID: your project ID
- LOCATION: a region where your instances are located, such as
us-central1
Apply the recommendation
To implement this recommendation, do the following:
Create appropriate indexes in your instance to prevent a large number of joins without indexes.
If you are not able to create indexes for the joins, increase the value of
join_buffer_size
until the recommendation disappears. The join buffer can be increased by session or globally. We recommend that you increase the join buffer in the session where there are a large number of joins.For more information on increasing the value of
join_buffer_size
, see Other memory consumption.