Fonctionnalités MySQL prises en charge sur Amazon RDS - Amazon Relational Database Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Fonctionnalités MySQL prises en charge sur Amazon RDS

RDS for MySQL prend en charge la plupart des fonctionnalités et des capacités de MySQL. Certaines fonctions peuvent avoir une prise en charge limitée ou des privilèges restreints.

Vous pouvez filtrer les nouvelles fonctions de Amazon RDS sur la page Nouveautés en matière de base de données. Pour Produits, choisissez Amazon RDS. Ensuite, effectuez une recherche à l'aide de mots clés tels que MySQL 2022.

Note

Les listes suivantes ne sont pas exhaustives.

Moteurs de stockage pris en charge pour RDS for MySQL

Même si MySQL prend en charge plusieurs moteurs de stockage aux capacités diverses, ils ne sont pas tous optimisés pour la récupération et la durabilité des données. Amazon RDS prend entièrement en charge le moteur de stockage InnoDB pour les instances de base de données MySQL. Les fonctions de restauration à un instant dans le passé et de restauration d'instantané d'Amazon RDS nécessitent un moteur de stockage tolérant aux incidents, et sont uniquement prises en charge pour le moteur de stockage InnoDB. Pour plus d’informations, consultez Mon support SQL Memcached.

Le Federated Storage Engine n'est pour l'instant pas pris en charge par Amazon RDS for MySQL.

Pour les schémas créés par l'utilisateur, le moteur de stockage MyISAM ne prend pas en charge une récupération fiable et peut causer la perte ou la corruption des données quand MySQL est redémarré après une récupération, empêchant la restauration à un instant dans le passé et la restauration d'instantané de fonctionner comme prévu. Néanmoins, si vous choisissez tout de même d'utiliser MyISAM avec Amazon RDS, les instantanés peuvent être utiles dans certaines conditions.

Note

Les tables système du schéma mysql peuvent être dans le stockage MyISAM.

Si vous souhaitez convertir des tables MyISAM existantes en tables InnoDB, vous pouvez utiliser la commande ALTER TABLE (par exemple, alter table TABLE_NAME engine=innodb;). N'oubliez pas que MyISAM et InnoDB ont des forces et des faiblesses différentes, vous devriez donc commencer par évaluer de façon exhaustive l'impact de ce basculement sur vos applications.

Les versions MySQL 5.1, 5.5 et 5.6 ne sont plus prises en charge dans Amazon RDS. Cependant, vous pouvez restaurer des instantanés MySQL 5.1, 5.5 et 5.6 existants. Lorsque vous restaurez un instantané MySQL 5.1, 5.5 ou 5.6, l'instance de base de données est automatiquement mise à niveau vers MySQL 5.7.

Utilisation de memcached et d'autres options avec MySQL sur Amazon RDS

La plupart des moteurs de base de données Amazon RDS prennent en charge des groupes d'options qui vous permettent de sélectionner des fonctions supplémentaires pour votre instance de base de données. Les instances de bases de données RDS for MySQL prennent en charge l'option memcached, un cache simple basée sur les clés. Pour plus d'informations sur memcached et d'autres options, consultez Options pour les instances de base de données MySQL. Pour plus d'informations sur l'utilisation de groupes d'options, consultez Utilisation de groupes d'options.

Préparation du cache InnoDB pour MySQL sur Amazon RDS

La préparation du cache InnoDB peut fournir des gains de performances pour votre instance de base de données MySQL en enregistrant l'état actuel du pool de mémoires tampons lorsque l'instance de base de données est arrêtée, puis en rechargeant le pool de mémoires tampons à partir des informations enregistrées au démarrage de l'instance de base de données. Cette approche contourne la nécessité de « préparer » le pool de mémoires tampons à partir d'une utilisation normale de la base de données et précharge à la place le pool de mémoires tampons avec les pages des requêtes courantes connues. Le fichier qui stocke les informations du pool de tampons enregistré stocke uniquement les métadonnées pour les pages qui sont dans le pool de mémoires tampons et pas les pages elles-mêmes. Par conséquent, le fichier ne nécessite pas un important espace de stockage. La taille du fichier représente environ 0,2 pour cent de la taille du cache. Par exemple, pour un cache 64 Gio, la taille du fichier de préparation de cache est de 128 Mio. Pour de plus amples informations sur la préparation du cache InnoDB, veuillez consulter Saving and Restoring the Buffer Pool State dans la documentation MySQL.

Les instances de bases de données RDS for MySQL prennent en charge la préparation du cache InnoDB. Pour activer la préparation du cache InnoDB, définissez les paramètres innodb_buffer_pool_dump_at_shutdown et innodb_buffer_pool_load_at_startup avec la valeur 1 dans le groupe de paramètres de votre instance de base de données. La modification de ces valeurs dans un groupe de paramètres affecte toutes les instances de bases de données MySQL qui utilisent ce groupe de paramètres. Pour activer la préparation du cache InnoDB pour des instances de bases de données MySQL spécifiques, vous devrez peut-être créer un groupe de paramètres pour ces instances. Pour plus d'informations sur les groupes de paramètres, consultez Groupes de paramètres pour Amazon RDS.

La préparation du cache InnoDB fournit principalement une amélioration des performances pour les instances de bases de données qui utilisent le stockage standard. Si vous utilisez le stockage PIOPS, vous ne constatez généralement pas d'amélioration significative des performances.

Important

Si votre instance de base de données MySQL ne se ferme pas normalement, comme lors d'un basculement, l'état du pool de mémoires tampons n'est pas enregistré sur le disque. Dans ce cas, MySQL charge n'importe quel fichier du pool de mémoires tampons disponible au redémarrage de l'instance de base de données. Il n'en résulte aucun dommage, mais le pool de tampons restauré peut ne pas refléter l'état le plus récent du pool de tampons avant le redémarrage. Pour vous assurer d'avoir un état récent du pool de mémoires tampons disponible afin de préparer le cache InnoDB au démarrage, il est recommandé que vous vidiez régulièrement le pool de mémoires tampons « à la demande ».

Vous pouvez créer un événement pour vider le pool de mémoires tampons automatiquement et à intervalles réguliers. Par exemple, l'instruction suivante crée un événement nommé periodic_buffer_pool_dump qui vide le pool de mémoires tampons toutes les heures.

CREATE EVENT periodic_buffer_pool_dump ON SCHEDULE EVERY 1 HOUR DO CALL mysql.rds_innodb_buffer_pool_dump_now();

Pour de plus amples informations sur les événements MySQL, veuillez consulter Syntaxe d'événement dans la documentation MySQL.

Vidage et chargement du pool de tampons à la demande

Vous pouvez enregistrer et charger le cache InnoDB « à la demande ».

Fonctions MySQL non prises en charge par Amazon RDS

Amazon RDS ne prend pas en charge actuellement les fonctions MySQL suivantes :

  • Plug-in d'authentification

  • Erreur de journalisation dans le journal système

  • Chiffrement d'espace de tables InnoDB

  • Plug-in de niveau de sécurité du mot de passe

  • Variables système persistantes

  • Plugin de réécriture de requêtes Rewriter

  • Réplication semi-synchrone

  • Espace de table transportable

  • Plug-in X

Note

Les ID de transaction globaux sont pris en charge pour toutes les versions de RDS for MySQL 5.7, et pour RDS for MySQL 8.0.26 et les versions 8.0 ultérieures.

Pour offrir une expérience de service géré, Amazon RDS ne fournit pas l'accès shell aux instances de base de données. Il restreint également l'accès à certaines procédures système et tables qui requièrent des privilèges avancés. Amazon RDS prend en charge l'accès aux bases de données sur une instance de base de données en utilisant toute application cliente SQL standard. Amazon RDS ne permet pas d'accès d'hôte direct à une instance de base de données via Telnet, Secure Shell (SSH) ou une connexion Bureau à distance Windows. Lorsque vous créez une instance de base de données, vous êtes assigné en tant que db_owner pour toutes les bases de données de cette instance, et vous disposez de toutes les autorisations au niveau de la base de données, à l'exception de celles utilisées pour les sauvegardes. Amazon RDS gère les sauvegardes pour vous.