Configurer des indicateurs de base de données

Cette page explique comment configurer des indicateurs de base de données pour Cloud SQL et répertorie les indicateurs que vous pouvez définir pour votre instance. Les indicateurs de base de données sont utilisés pour de nombreuses opérations, y compris l'ajustement des paramètres et des options MySQL, ainsi que la configuration et le réglage d'une instance.

Parfois, définir un indicateur implique d'en définir un autre, afin d'activer complètement la fonctionnalité souhaitée. Par exemple, pour activer la journalisation lente des requêtes, vous devez définir à la fois l'indicateur slow_query_log sur on et l'indicateur log_output sur FILE. Grâce à ces deux indicateurs, vos journaux seront disponibles à partir de la visionneuse de journaux de Google Cloud Console.

Lorsque vous définissez, supprimez ou modifiez un indicateur pour une instance de base de données, il peut être nécessaire de la redémarrer. La nouvelle valeur de l'indicateur est ensuite conservée pour l'instance, jusqu'à ce que vous la supprimiez. Si l'instance est la source d'une instance dupliquée et est redémarrée, elle est également redémarrée pour s'aligner sur la configuration actuelle de l'instance.

Configurer des indicateurs de base de données

Définir un indicateur de base de données

Console

  1. Dans Google Cloud Console, créez un projet Cloud Console ou ouvrez un projet existant en sélectionnant son nom.
  2. Ouvrez l'instance et cliquez sur Modifier.
  3. Faites défiler jusqu'à la section Indicateurs.
  4. Pour définir un nouvel indicateur sur l'instance, cliquez sur Ajouter un élément, choisissez-le dans le menu déroulant et définissez sa valeur.
  5. Cliquez sur Enregistrer pour enregistrer les modifications.
  6. Confirmez les modifications effectuées dans la section Indicateurs à partir de la page de présentation.

gcloud

Modifiez l'instance :

gcloud sql instances patch [INSTANCE_NAME] --database-flags [FLAG1=VALUE1,FLAG2=VALUE2]

Cette commande va écraser tous les indicateurs de base de données précédemment définis. Pour les conserver et en ajouter d'autres, vous devez inclure les valeurs de tous les indicateurs que vous souhaitez définir sur l'instance. Tout indicateur qui n'est pas spécifiquement inclus est défini à sa valeur par défaut. Pour les indicateurs sans valeur, spécifiez le nom de l'indicateur suivi d'un signe égal ("=").

Par exemple, pour définir les indicateurs general_log, skip_show_database et wait_timeout, vous pouvez exécuter la commande suivante :

gcloud sql instances patch [INSTANCE_NAME] --database-flags \
    general_log=on,skip_show_database=on,wait_timeout=200000

REST v1

Pour définir un indicateur pour une base de données existante, procédez comme suit :

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • project-id : ID du projet
  • instance-id : ID de l'instance.

Méthode HTTP et URL :

PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

Corps JSON de la requête :

{
  "settings":
  {
    "databaseFlags":
    [
      {
        "name": "flag_name",
        "value": "flag_value"
      }
    ]
  }
}

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

Par exemple, pour définir l'indicateur general_log pour une base de données existante, procédez comme suit :

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • project-id : ID du projet
  • instance-id : ID de l'instance.

Méthode HTTP et URL :

PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

Corps JSON de la requête :

{
  "settings":
  {
    "databaseFlags":
    [
      {
        "name": "general_log",
        "value": "on"
      }
    ]
  }
}

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

Si des indicateurs sont déjà configurés pour la base de données, modifiez la commande précédente pour les inclure. La commande PATCH remplace les indicateurs existants par ceux spécifiés dans la requête.

REST v1beta4

Pour définir un indicateur pour une base de données existante, procédez comme suit :

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • project-id : ID du projet
  • instance-id : ID de l'instance.

Méthode HTTP et URL :

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

Corps JSON de la requête :

{
  "settings":
  {
    "databaseFlags":
    [
      {
        "name": "flag_name",
        "value": "flag_value"
      }
    ]
  }
}

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

Par exemple, pour définir l'indicateur general_log pour une base de données existante, procédez comme suit :

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • project-id : ID du projet
  • instance-id : ID de l'instance.

Méthode HTTP et URL :

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

Corps JSON de la requête :

{
  "settings":
  {
    "databaseFlags":
    [
      {
        "name": "general_log",
        "value": "on"
      }
    ]
  }
}

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

Si des indicateurs sont déjà configurés pour la base de données, modifiez la commande précédente pour les inclure. La commande PATCH remplace les indicateurs existants par ceux spécifiés dans la requête.

Réinitialiser les valeurs par défaut des indicateurs

Console

  1. Dans Google Cloud Console, créez un projet Cloud Console ou ouvrez un projet existant en sélectionnant son nom.
  2. Ouvrez l'instance et cliquez sur Modifier.
  3. Ouvrez la section Indicateurs de base de données.
  4. Cliquez sur le symbole X à côté de tous les indicateurs affichés.
  5. Cliquez sur Enregistrer pour enregistrer les modifications.

gcloud

Réinitialiser les valeurs par défaut des indicateurs d'une instance :

gcloud sql instances patch INSTANCE_NAME \
--clear-database-flags

Vous êtes invité à confirmer le redémarrage de l'instance.

REST v1

Pour effacer tous les indicateurs sur une instance existante :

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • project-id : ID du projet
  • instance-id : ID de l'instance.

Méthode HTTP et URL :

PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

Corps JSON de la requête :

{
  "settings":
  {
    "databaseFlags": []
  }
}

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

REST v1beta4

Pour effacer tous les indicateurs sur une instance existante :

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • project-id : ID du projet
  • instance-id : ID de l'instance.

Méthode HTTP et URL :

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

Corps JSON de la requête :

{
  "settings":
  {
    "databaseFlags": []
  }
}

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

Afficher les valeurs actuelles des indicateurs de base de données

Pour afficher toutes les valeurs actuelles des variables de système MySQL, connectez-vous à votre instance avec le client mysql et saisissez l'instruction suivante :

 SHOW VARIABLES;

Notez que vous ne pouvez modifier la valeur que des indicateurs compatibles (répertoriés ci-dessous).

Déterminer les indicateurs de base de données définis pour une instance

Pour savoir quels indicateurs ont été définis pour une instance Cloud SQL :

Console

  1. Dans Google Cloud Console, créez un projet Cloud Console ou ouvrez un projet existant en sélectionnant son nom.
  2. Sélectionnez l'instance pour ouvrir la page Présentation de l'instance.

    Les indicateurs de base de données définis sont répertoriés dans la section Indicateurs de base de données.

gcloud

Afficher l'état de l'instance :

gcloud sql instances describe INSTANCE_NAME

Dans le résultat, les indicateurs de base de données sont répertoriés sous la section settings dans la collection databaseFlags. Pour en savoir plus sur la représentation des options dans le résultat, consultez la page Représentation des ressources d'instances.

REST v1

Pour répertorier les indicateurs configurés pour une instance :

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • project-id : ID du projet
  • instance-id : ID de l'instance.

Méthode HTTP et URL :

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

Dans le résultat, recherchez le champ databaseFlags.

REST v1beta4

Pour répertorier les indicateurs configurés pour une instance :

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • project-id : ID du projet
  • instance-id : ID de l'instance.

Méthode HTTP et URL :

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

Dans le résultat, recherchez le champ databaseFlags.

Options gérées par Cloud SQL

Cloud SQL ajuste certaines options système en fonction du type de machine de l'instance. Vous ne pouvez pas ajuster ces valeurs.

innodb_buffer_pool_instances
  • 1 pour db-f1-micro et db-g1-small.
  • 1 si la mémoire RAM est inférieure à 7,5 Go.
  • 2 si la mémoire RAM est comprise entre 7,5 Go et 13 Go
  • 4 si la mémoire RAM est comprise entre 13 Go et 26 Go.
  • 8 si la mémoire RAM est supérieure à 26 Go.

Indicateurs compatibles

Les indicateurs compatibles avec Cloud SQL correspondent aux indicateurs MySQL les plus courants. Les indicateurs qui n'apparaissent pas ci-dessous ne sont pas compatibles.

Pour un indicateur donné, Cloud SQL peut être compatible avec une plage différente de celle du paramètre ou de l'option MySQL correspondants.

Les indicateurs s'appliquent à toutes les versions de MySQL prises en charge par Cloud SQL, sauf indication contraire.

A | B | C | D | E | F | G | I | L | M | N | O | P | Q | R | S | T | U | W

Indicateur Cloud SQL Valeurs
acceptables et remarques pour le type
Redémarrage
nécessaire ?
activate_all_roles_on_login boolean
on | off
Par défaut : off
Non
auto_increment_increment integer
1 ... 65535
Non
auto_increment_offset integer
1 ... 65535
Non
binlog_cache_size integer
4096 ... 9223372036854775807
Non
binlog_expire_log_seconds integer
0 ou 86400 (1 day) ... 4294967295 (max value)
La valeur par défaut est 2 592 000, soit 30 jours.

Consultez la section Conseils pour plus d'informations sur cet indicateur.

Non
binlog_group_commit_sync_delay 0 ... 1 000 000

Compatible avec MySQL 5.7, 8.0

La valeur par défaut est 0.

Non
binlog_group_commit_sync_no_delay_count 0 ... 1 000 000

Compatible avec MySQL 5.7, 8.0

La valeur par défaut est 0.

Non
binlog_row_image enumeration
full (par défaut), minimal ou noblob
Non
binlog_stmt_cache_size 4096 ... 9223372036854775807 Non
binlog_transaction_dependency_history_size integer

Pour savoir comment utiliser cet indicateur et les valeurs qu'il accepte, consultez Configurer la réplication parallèle.

Non
binlog_transaction_dependency_tracking enumeration

Pour savoir comment utiliser cet indicateur et les valeurs qu'il accepte, consultez Configurer la réplication parallèle.

Non
character_set_server string
utf8 ou utf8mb4 (recommandé)
Oui
default_password_lifetime integer 0...65535
Par défaut : 0
Non
default_time_zone string
Spécifiez les valeurs en tant que décalages de fuseau horaire, de -12:59 à +13:00. précédées de zéro.

Par exemple, Londres est dans le fuseau horaire UTC, correspondant à +00:00 dans les valeurs acceptées pour cet indicateur. Les noms de zones, tels que "Europe/Londres", ne sont pas compatibles avec Cloud SQL.

Oui
disconnect_on_expired_password boolean on | off
Par défaut : on
Oui
eq_range_index_dive_limit integer
0 ... 2147483647
Non
event_scheduler boolean
on | off

Si vous utilisez le planificateur d'événements, configurez votre instance avec une règle d'activation définie sur TOUJOURS, afin de garantir l'exécution des événements planifiés.

Non
expire_log_days integer
0 ... 99
La valeur par défaut est 0, ce qui signifie qu'il n'y a aucune suppression automatique.

Consultez la section Conseils pour plus d'informations sur cet indicateur.

Non
explicit_defaults_for_timestamp boolean
on | off
Oui
ft_max_word_len integer
10 ... 252
Oui
ft_min_word_len integer
1 ... 16
Oui
ft_query_expansion_limit integer
0 ... 1000
Oui
general_log boolean
on | off

Consultez la section Conseils pour plus d'informations sur les journaux généraux.

Non
generated_random_password_length integer 5-255
Par défaut : 20
Non
group_concat_max_len integer
4 ... 17179869184
Non
init_connect string Non
innodb_adaptive_hash_index boolean
on | off
Non
innodb_adaptive_hash_index_parts integer
1 ... 512
Oui
innodb_adaptive_max_sleep_delay integer
0 ... 1000000
Non
innodb_autoinc_lock_mode integer
0 ... 2
Oui
innodb_buffer_pool_size integer

La définition de cette option pour MySQL 5.6 nécessite un redémarrage. Consultez la section Conseils pour en savoir plus sur cette option.

Non
innodb_change_buffer_max_size integer
0 ... 50
Non
innodb_concurrency_tickets integer
1 ... 4294967295
Non
innodb_file_per_table boolean
on | off

Consultez la section Conseils pour plus d'informations sur cet indicateur.

Non
innodb_fill_factor integer
10 ... 100
Non
innodb_flush_log_at_trx_commit integer
1, 2
Par défaut : 1.

Consultez la section Conseils pour plus d'informations sur cet indicateur.

Non
innodb_ft_cache_size integer
1600000 ... 80000000
Oui
innodb_ft_enable_diag_print boolean
on | off
Non
innodb_ft_enable_stopword boolean
on | off
Non
innodb_ft_max_token_size integer
10 ... 252

Compatible uniquement avec MySQL 5.6 et versions ultérieures.

Oui
innodb_ft_min_token_size integer
0 ... 16

Compatible uniquement avec MySQL 5.6 et versions ultérieures.

Oui
innodb_ft_num_word_optimize integer
1000 ... 10000
Non
innodb_ft_result_cache_limit integer
1000000 ... 4294967295
Non
innodb_ft_server_stopword_table string

Compatible uniquement avec MySQL 5.6 et versions ultérieures.

Non
innodb_ft_sort_pll_degree integer
1 ... 32
Oui
innodb_ft_total_cache_size integer
32000000 ... 1600000000
Oui
innodb_ft_user_stopword_table string Non
innodb_large_prefix boolean
on | off

Uniquement compatible avec MySQL 5.6.

Non
innodb_lock_wait_timeout integer
1 ... 1073741824
Non
innodb_log_buffer_size integer
262144 ... 4294967295
Oui
innodb_log_file_size integer
MySQL 5.6 : 1048576 ... 274877906944
MySQL 5.7 : 4194304 ... 274877906944
Oui
innodb_lru_scan_depth integer
100 ... 9223372036854775807
Non
innodb_old_blocks_pct integer
5 ... 95
Non
innodb_old_blocks_time integer
0 ... 4294967295
Non
innodb_online_alter_log_max_size integer
65536 ... 9223372036854775807
Non
innodb_optimize_fulltext_only boolean
on | off
Non
innodb_print_all_deadlocks boolean
on | off
Non
innodb_purge_threads 1 ... 32

Compatible avec MySQL 5.6, 5.7, 8.0

La valeur par défaut est 1.

Oui
innodb_random_read_ahead boolean
on | off
Non
innodb_read_ahead_threshold integer
0 ... 64
Non
innodb_read_io_threads integer
1 ... 64
Oui
innodb_replication_delay integer
0 ... 4294967295
Non
innodb_rollback_on_timeout boolean
on | off
Oui
innodb_rollback_segments integer
1 ... 128
Non
innodb_sort_buffer_size integer
65536 ... 67108864
Oui
innodb_stats_auto_recalc boolean
on | off
Non
innodb_stats_method enumeration
nulls_equal | nulls_unequal | nulls_ignored
Non
innodb_stats_on_metadata boolean
on | off
Non
innodb_stats_persistent boolean
on | off
Non
innodb_stats_persistent_sample_pages integer
1 ... 9223372036854775807
Non
innodb_stats_sample_pages integer
1 ... 9223372036854775807
Non
innodb_stats_transient_sample_pages integer
1 ... 9223372036854775807
Non
innodb_status_output boolean
on | off
Non
innodb_status_output_locks boolean
on | off
Non
innodb_stric_mode boolean
on | off
Non
innodb_sync_array_size 1 ... 1024

Compatible avec MySQL 5.6, 5.7, 8.0

La valeur par défaut est 1.

Oui
innodb_thread_concurrency integer
0 ... 1000
Non
innodb_thread_sleep_delay integer
0 ... 1000000
Non
innodb_write_io_threads integer
1 ... 64
Oui
interactive_timeout integer
1 ... 31536000
Non
internal_tmp_mem_storage_engine enumeration
MEMORY, TempTable
Cette option n'est utilisée que pour MySQL 8.0.
Non
join_buffer_size integer
128 ... 9223372036854775807
Non
local_infile boolean
on | off
Non
lock_wait_timeout integer
1 ... 31536000
Non
log_bin_trust_function_creators boolean
on | off
Non
log_output set
FILE | TABLE | NONE
Non
log_queries_not_using_indexes boolean
on | off
Non
log_throttle_queries_not_using_indexes integer
0 ... 9223372036854775807
Non
long_query_time float
0 ... 30000000

Cloud SQL autorise à définir cet indicateur avec une valeur inférieure à 1 si nécessaire.

Si l'indicateur log_queries_not_using_indexes est également activé, vous pouvez voir des requêtes dont la durée est inférieure à celle spécifiée ici.

Non
lower_case_table_names integer
0 ou 1

Dans la plupart des cas, la valeur par défaut de 0 doit être utilisée, ce qui rend les noms de la table et des bases de données sensibles à la casse. Si vous devez modifier la valeur de cet indicateur, assurez-vous de bien comprendre en quoi les modifications affecteront vos tables et bases de données existantes.

Oui
mandatory_roles string role name
Par défaut : empty string
Non
max_allowed_packet integer
16384 ... 1073741824

Cette valeur doit être un multiple de 1 024, si sql_mode=TRADITIONAL ou sql_mode=STRICT_ALL_TABLES.

Non
max_binlog_size integer
4096 ... 1073741824
Non
max_connections integer
14 ... 262143
Oui
max_digest_length integer
0 ... 1048576
Oui
max_execution_time integer
0 ... 9223372036854775807
Non
max_heap_table_size integer
16384 ... 67108864

Consultez la section Conseils pour plus d'informations sur cet indicateur.

Non
max_join_size integer
16 ... 9223372036854775807
Non
max_length_for_sort_data integer
4 ... 8388608
Non
max_points_in_geometry integer
3 ... 1048576
Non
max_prepared_stmt_count integer
0 ... 1048576
Non
max_seeks_for_key integer
1 ... 9223372036854775807
Non
max_sort_length integer
4 ... 8388608
Non
max_sp_recursion_depth integer
0 ... 255
Non
max_user_connections integer
0 ... 4294967295
Non
max_write_lock_count integer
1 ... 9223372036854775807
Non
net_read_timeout integer
30 ... 4294967295
Non
net_retry_count integer
10 ... 4294967295
Non
net_write_timeout integer
60 ... 4294967295
Non
optimizer_prune_level integer
0 ... 1
Non
optimizer_search_depth integer
0 ... 62
Non
optimizer_trace_max_mem_size integer
0 ... 9223372036854775807
Non
optimizer_trace_offset integer
-9223372036854775808 ... 9223372036854775807
Non
parser_max_mem_size integer
10000000 ... 9223372036854775807
Non
password_history integer 0-4294967295
Par défaut : 0
Non
password_require_current boolean on | off
Par défaut : off
Non
password_reuse_interval integer 0-4294967295
Par défaut : 0
Non
performance_schema boolean
on | off (par défaut)

Consultez la section Conseils pour en savoir plus sur les indicateurs performance_schema.

Oui
performance_schema_accounts_size integer
-1 ... 1048576

Consultez la section Conseils pour en savoir plus sur les indicateurs performance_schema.

Oui
performance_schema_digests_size integer
-1 ... 1048576

Consultez la section Conseils pour en savoir plus sur les indicateurs performance_schema.

Oui
performance_schema_events_stages_history_long_size integer
-1 ... 1048576
Oui
performance_schema_events_stages_history_size integer
-1 ... 1024

Consultez la section Conseils pour en savoir plus sur les indicateurs performance_schema.

Oui
performance_schema_events_statements_history_long_size integer
-1 ... 1048576

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_events_statements_history_size integer
-1 ... 1024

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_events_transactions_history_long_size integer
-1 ... 1048576

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_events_transactions_history_size integer
-1 ... 1024

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_events_waits_history_long_size integer
-1 ... 1048576

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_events_waits_history_size integer
-1 ... 1024

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_hosts_size integer
-1 ... 1048576

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_max_cond_classes integer
0 ... 256

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_max_cond_instances integer
-1 ... 1048576

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_max_digest_length integer
0 ... 1048576

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_max_file_classes integer
0 ... 256

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_max_file_handles integer
0 ... 1048576

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_max_file_instances integer
-1 ... 1048576

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_max_index_stat integer
-1 ... 1048576

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_max_memory_classes integer
0 ... 1024

Consultez la section Conseils pour en savoir plus sur les indicateurs performance_schema.

Oui
performance_schema_max_metadata_locks integer
-1 ... 104857600

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_max_mutex_classes integer
0 ... 256

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_max_mutex_instances integer
-1 ... 104857600

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_max_prepared_statements_instances integer
-1 ... 1048576

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_max_program_instances integer
-1 ... 1048576

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_max_rwlock_classes integer
0 ... 256

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_max_rwlock_instances integer
-1 ... 104857600

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_max_socket_classes integer
0 ... 256

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_max_socket_instances integer
-1 ... 1048576

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_max_sql_text_length integer
0 ... 1048576

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_max_stage_classes integer
0 ... 256

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_max_statement_classes integer
0 ... 256

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_max_statement_stack integer
1 ... 256

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_max_table_handles integer
-1 ... 1048576

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_max_table_instances integer
-1 ... 1048576

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_max_table_lock_stat integer
-1 ... 1048576

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_max_thread_classes integer
0 ... 256

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_max_thread_instances integer
-1 ... 1048576

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_session_connect_attrs_size integer
-1 ... 1048576

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_setup_actors_size integer
-1 ... 1048576

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_setup_objects_size integer
-1 ... 1048576

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
performance_schema_users_size integer
-1 ... 1048576

Consultez la section Conseils pour plus d'informations sur les indicateurs performance_schema.

Oui
query_alloc_block_size integer
1024 ... 4294967295
Non
query_cache_limit integer
0 ... 223338299392

Cette option n'est pas disponible pour MySQL 8.0, car le cache de requêtes est devenu obsolète à partir de MySQL 5.7.20 et a été supprimé dans MySQL 8.0.

Non
query_cache_min_res_unit integer
0 ... 9223372036854775807

Cette option n'est pas disponible pour MySQL 8.0, car le cache de requêtes est devenu obsolète à partir de MySQL 5.7.20 et a été supprimé dans MySQL 8.0.

Non
query_cache_size integer
0 ... 223338299392

Cette option n'est pas disponible pour MySQL 8.0, car le cache de requêtes est devenu obsolète à partir de MySQL 5.7.20 et a été supprimé dans MySQL 8.0. Consultez la section Conseils pour plus d'informations sur cet indicateur.

Non
query_cache_type enumeration
0 ... 2

Cette option n'est pas disponible pour MySQL 8.0, car le cache de requêtes est devenu obsolète à partir de MySQL 5.7.20 et a été supprimé dans MySQL 8.0. Consultez la section Conseils pour plus d'informations sur cet indicateur.

Oui
query_cache_wlock_invalidate boolean
on | off

Cette option n'est pas disponible pour MySQL 8.0, car le cache de requêtes est devenu obsolète à partir de MySQL 5.7.20 et a été supprimé dans MySQL 8.0.

Non
query_prealloc_size integer
8192 ... 9223372036854775807
Non
range_alloc_block_size integer
4096 ... 4294967295
Non
range_optimizer_max_mem_size integer
0 ... 9223372036854775807
Non
read_buffer_size integer
8192 ... 2147483647
Non
read_only boolean
on | off

Aucun effet sur les instances dupliquées.

Non
read_rnd_buffer_size integer
1 ... 2147483647
Non
show_compatibility_56 boolean
on | off

Uniquement compatible avec MySQL 5.7.

Non
skip_show_database flag
on | off
Oui
slave_parallel_type enumeration

Pour savoir comment utiliser cet indicateur et les valeurs qu'il accepte, consultez Configurer la réplication parallèle.

Non
slave_parallel_workers integer

Pour savoir comment utiliser cet indicateur et les valeurs qu'il accepte, consultez Configurer la réplication parallèle.

Non
slave_preserve_commit_order boolean

Pour savoir comment utiliser cet indicateur et les valeurs qu'il accepte, consultez Configurer la réplication parallèle.

Non
slave_pending_jobs_size_max integer

Pour savoir comment utiliser cet indicateur et les valeurs qu'il accepte, consultez Configurer la réplication parallèle.

Non
slow_query_log boolean
on | off

Consultez la section Conseils pour plus d'informations sur les journaux de requêtes lentes.

Non
sort_buffer_size integer
32768 ... 9223372036854775807
Non
sql_mode string

Consultez la page sur les modes SQL du serveur dans la documentation MySQL pour connaître les valeurs autorisées, y compris pour les modes combinés tels que ANSI. NO_DIR_IN_CREATE n'est pas accepté.

Cloud SQL pour MySQL n'accepte pas de valeurs vides pour l'option sql_mode. Au lieu d'utiliser une valeur vide, définissez cette option sur le mode NO_ENGINE_SUBSTITUTION.

Non
stored_program_cache integer
16 ... 524288
Non
sync_binlog integer
0 ... 4294967295

Compatible uniquement avec les instances dupliquées en lecture seule et les instances dupliquées des serveurs externes dans MySQL 5.7 et 8.0.

La valeur 1 par défaut active la synchronisation du journal binaire sur le disque avant le commit des transactions.

Cette option n'est compatible ni avec les instances principales, ni avec les anciennes instances dupliquées de basculement à haute disponibilité. Si une instance dupliquée utilisant cet indicateur est promue, l'indicateur est supprimé.

Non
table_definition_cache integer
400 ... 524288
Non
table_open_cache integer
1 ... 524288
Non
table_open_cache_instances integer
1 ... 64
Oui
thread_cache_size integer
0 ... 16384
Non
thread_stack integer
131072 ... 9223372036854775807
Oui
tmp_table_size integer
1024 ... 67108864

Consultez la section Conseils pour plus d'informations sur cet indicateur.

Non
transaction_alloc_block_size integer
1024 ... 131072
Non
transaction_isolation enumeration
READ-UNCOMMITTED | READ-COMMITTED | REPEATABLE-READ | SERIALIZABLE
Oui
transaction_prealloc_size integer
1024 ... 131072
Non
transaction_write_set_extraction enumeration

Pour savoir comment utiliser cet indicateur et les valeurs qu'il accepte, consultez Configurer la réplication parallèle.

Non
updatable_views_with_limit integer
0 ... 1
Non
wait_timeout integer
1 ... 31536000
Non

Conseils pour l'utilisation d'indicateurs

general_log, slow_query_log

Pour que vos journaux general ou slow query soient disponibles, activez l'indicateur correspondant et définissez l'indicateur log_output sur FILE. De cette façon, la sortie du journal sera disponible dans la visionneuse de journaux de Google Cloud Console. Notez que les frais de journalisation de la suite Google Cloud Operations s'appliquent. Afin de réduire les coûts de stockage des instances, les journaux general et slow query stockés sur le disque de l'instance font l'objet d'une rotation lorsque l'âge du fichier journal dépasse 24 heures (et qu'aucune modification n'a été effectuée pendant cette période) ou sa taille est supérieure à 100 Mo. Les anciens fichiers journaux seront automatiquement supprimés après la rotation.

Si log_output est défini sur NONE, vous ne pourrez pas accéder aux journaux. Si vous définissez log_output sur TABLE, la sortie du journal est placée dans une table de votre base de données. Si cette table devient trop volumineuse, cela peut affecter le temps de redémarrage de l'instance ou compromettre sa couverture par le contrat de niveau de service. Pour cette raison, l'option TABLE n'est pas recommandée. Si nécessaire, vous pouvez tronquer vos tables de journal à l'aide de l'API. Pour plus d'informations, consultez la page de référence sur les instances.truncateLog.

expire_logs_days, binlog_expire_logs_seconds
Si vous activez la récupération à un moment précis, la période d'expiration de vos journaux binaires est déterminée par la valeur la plus faible entre la durée de conservation du journal des transactions et la valeur de cette option. Pour plus d'informations, consultez la page Conservation des journaux de transactions.
innodb_buffer_pool_size

La valeur de "innodb_buffer_pool_size" correspond à la taille, en octets, du pool de mémoire tampon. Vous ne pouvez pas activer cet indicateur sur des instances disposant de moins de 3 840 Mio de RAM.

Cette option n'est pas configurable pour les types de machines à cœur partagé (f1_micro et g1_small). La modification de cette option sur MySQL 5.6 nécessite un redémarrage.

Dans Cloud SQL, les valeurs par défaut, minimales et maximales autorisées de l'option "innodb_buffer_pool_size" dépendent de la mémoire de l'instance. Ces valeurs peuvent être calculées de manière approximative sous forme de pourcentage de la mémoire RAM de l'instance. Par défaut, la valeur de cette option est généralement définie sur la valeur maximale autorisée. Le pourcentage d'allocation maximal autorisé augmente avec la taille de l'instance. La valeur minimale autorisée correspond généralement à environ 20 % de la mémoire RAM de l'instance.

Valeurs approximatives pour cette option :

Plage de la mémoire RAM de l'instance% min.% par défaut% max.
0 — 4,0 Go de RAM~34 %
4,0 Go — 7,5 Go~20 %~34 %~34 %
7,5 Go — 12 Go~20 %~52 %~52 %
12 Go — 24 Go~20 %~67 %~67 %
24 Go et plus~20 %~72 %~72 %

Vos valeurs exactes peuvent varier. Pour calculer la valeur actuelle de votre instance, vous pouvez exécuter la requête suivante :

  show global variables like 'innodb_buffer_pool_size'
  

Pour référence, les valeurs par défaut, minimales et maximales autorisées sont fournies pour les types de machines prédéfinis ci-dessous.

Type de machine prédéfini RAM d'instance (Go) Min. (Go)
(% du total)
Par défaut (Go)
(% du total)
Max. (Go)
(% du total)
f1-micro 0,6 - 0,053 -
g1-small 1,7 - 0,625 -
db-custom-1-3840 3,75 0,875
(23 %)
1,375
(37 %)
1,375
(37 %)
db-custom-2-7680 7,5 1,5
(20 %)
4
(53 %)
4
(53 %)
db-custom-4-15360 15 3
(20 %)
10,5
(70 %)
10,5
(70 %)
db-custom-8-30720 30 6
(20 %)
22
(73 %)
22
(73 %)
db-custom-16-61440 60 12
(20 %)
44
(73 %)
44
(73 %)
db-custom-32-122880 120 24
(20 %)
87
(73 %)
87
(73 %)
db-custom-64-245760 240 48
(20 %)
173
(72 %)
173
(72 %)
db-custom-96-368640 360 72
(20 %)
260
(72 %)
260
(72 %)
db-custom-2-13312 13 3
(23 %)
9
(69 %)
9
(69 %)
db-custom-4-26624 26 6
(23 %)
19
(73 %)
19
(73 %)
db-custom-8-53248 52 11
(21 %)
38
(73 %)
38
(73 %)
db-custom-16-106496 104 21
(20 %)
75
(72 %)
75
(72 %)
db-custom-32-212992 208 42
(20 %)
150
(72 %)
150
(72 %)
db-custom-64-425984 416 84
(20 %)
300
(72 %)
300
(72 %)
db-custom-96-638976 624 125
(20 %)
450
(72 %)
450
(72 %)

innodb_file_per_table

Pour toutes les versions MySQL 5.6 et ultérieures, la valeur par défaut est ON.

innodb_flush_log_at_trx_commit
Si vous avez besoin de performances plus élevées, nous vous recommandons de définir la valeur sur 2. Cloud SQL ne permet pas de définir la valeur de cette option sur 0. Si vous définissez la valeur de l'option sur 2, vous devez désactiver le journal binaire sur l'instance dupliquée, ou définir sync_binlog sur une valeur autre que 1.

Vous ne pouvez activer cette option que pour les instances dupliquées en lecture seule et les instances dupliquées des serveurs externes. Pour les instances dupliquées des serveurs externes, cette option doit être définie sur la valeur par défaut de 1 pour assurer la conformité totale aux normes d'atomicité, de cohérence, d'isolation et de durabilité (ACID). Vous ne pouvez pas activer cette option sur des instances principales ou des instances dupliquées de basculement.

max_heap_table_size, tmp_table_size

La mémoire d'instance disponible peut s'épuiser lorsque vous définissez des valeurs trop élevées pour tmp_table_size et max_heap_table_size par rapport au nombre de requêtes traitées simultanément par l'instance. L'épuisement de la mémoire provoquera le plantage et le redémarrage de l'instance.

Pour en savoir plus sur l'utilisation de ces indicateurs, reportez-vous aux pages Comment MySQL utilise les tables temporaires internes et Moteur de stockage MEMORY.

performance_schema

Vous ne pouvez pas activer cet indicateur sur des instances disposant de moins de 26 624 Mio de RAM. Si vous activez cet indicateur, vous ne pouvez pas abaisser votre type de machine à un niveau non compatible avec cet indicateur. Vous devez d'abord désactiver l'indicateur.

Options système modifiées dans Cloud SQL

Toutes les autres options système de base de données qui ne sont pas répertoriées dans la section Options compatibles sont appelées "options gérées". Pour certaines options gérées, Cloud SQL définit l'option sur une valeur autre la valeur par défaut afin de garantir l'exécution fiable des instances Cloud SQL. Vous ne pouvez pas modifier les valeurs de ces options système.

Les options gérées ayant une valeur autre que la valeur par défaut sont répertoriées ci-dessous.

Nom de la variable Paramètre dans Cloud SQL. Remarques
binlog_format ROW Différent dans MySQL 5.6 uniquement
binlog_error_action ABORT_SERVER Différent dans MySQL 5.6 uniquement
innodb_file_format Barracuda Différent dans MySQL 5.6 uniquement
innodb_flush_method O_DIRECT
innodb_flush_neighbors 0 (dans MySQL 5.6) et 2 (dans MySQL 5.7 et 8.0)
innodb_io_capacity 5000
innodb_buffer_pool_instances
Taille de l'instance
(première correspondance)
innodb_buffer_pool_instances
< 1 024 1
< 2 048 1
< 7 680 1
< 13 312 2
< 26 624 4
par défaut 8
memlock vrai
skip_name_resolve Activé
relay_log_info_repository TABLE
relay_log_recovery Activé
slave_net_timeout 30
master_info_repository TABLE
rpl_semi_sync_master_enabled 1
rpl_semi_sync_master_timeout 3 000
innodb_page_cleaners 8 Différent dans MySQL 5.7 et 8.0 uniquement
admin_address 127.0.0.1 Différent dans MySQL 8.0 uniquement
create_admin_listener_thread Activé
port-open-timeout 120 Différent dans MySQL 8.0 uniquement
innodb_io_capacity_max 10000

Dépannage

Problème Dépannage
Une fois que vous avez activé un indicateur, une boucle se produit entre la panique et le plantage de l'instance. Contactez le service client pour demander la suppression de l'indicateur et un hard drain. Cela force l'instance à redémarrer sur un autre hôte avec une nouvelle configuration, sans indicateur ni paramètre indésirables.
Le message d'erreur Bad syntax for dict arg s'affiche lorsque vous tentez de définir une indicateur. Les valeurs de paramètre complexes, telles que les listes d'éléments séparés par une virgule, nécessitent un traitement particulier lorsqu'elles sont utilisées avec des commandes gcloud.
Le fuseau horaire n'est pas modifié automatiquement. Les changements automatiques du fuseau horaire ne sont pas compatibles avec Cloud SQL pour MySQL et doivent être effectués manuellement en utilisant une valeur de décalage de fuseau horaire plutôt qu'une chaîne.

Modifiez l'instance pour changer l'indicateur default_time_zone. Les zones de noms ne sont pas compatibles. Exemple :

Europe/LondonLondres est dans le fuseau horaire UTC, qui serait une valeur acceptée de +00:00 pour l'indicateur default_time_zone.

Étape suivante