Dépassement de capacité de la base de données MySQL

Dans nos offres actuelles, vous disposez de 1 gigaoctet d'espace de stockage par base de données. Si cette limite est dépassée, l'accès en écriture à cette base de données MySQL est automatiquement verrouillé jusqu'à ce que vous repassiez sous la limite.

Grâce aux instructions suivantes, vous pouvez optimiser votre base de données et ainsi éviter qu'elle ne soit verrouillée.

Vous pouvez connaître l'espace de stockage utilisé d'une base de données MySQL en regardant l'affichage dans votre compte IONOS ou PHPmyadmin. Veuillez noter que PHPmyadmin affiche une valeur incorrecte pour l'utilisation de la mémoire lors de l'utilisation des tables innodb.
Par conséquent, la valeur affichée dans le compte IONOS sous Hébergement > Sélection de contrats > Bases de données : Administrer est déterminante.

Une des raisons possibles d'une utilisation très excessive de la mémoire de votre base de données MySQL peut être la modification fréquente des tables. En conséquence, de plus en plus d'espace est occupé, sans que le volume de stockage réel ne change beaucoup. Vous pouvez réorganiser et optimiser cet espace de stockage.

Veuillez noter
  • Une augmentation de la taille maximale de la base de données de 1 gigaoctet n'est pas possible.
  • Si vous avez déjà dépassé l'espace de stockage maximum de votre base de données, le nettoyage n'est possible que via le service client IONOS. Une exception s'applique aux tables innodb auxquelles une commande Alter Table peut être appliquée.

Libérer de l'espace mémoire

Pour optimiser une base de données sur votre compte IONOS :

  • Si vous ne l'avez pas encore fait, connectez-vous à votre compte IONOS.
  • Cliquez sur la tuile Hébergement  et sélectionnez le contrat d'hébergement approprié.
  • Dans la tuile de la base de données, cliquez sur Administrer . Un aperçu de vos bases de données MySQL créées s'affiche.
  • Cliquez sur le lien Ouvrir dans la ligne où votre base de données est affichée. Le programme d'administration phpMyAdmin s'ouvre dans une nouvelle fenêtre (ou un nouvel onglet).
  • Cliquez sur le nom de la base de données dans l'arborescence. Dans la vue détaillée, toutes les tables de cette base de données sont affichées.
  • Choisissez SQL  dans la barre de menu.
  • Entrez la commande suivante dans l'onglet SQL  : SELECT concat('optimize table `', table_schema, '`.`', TABLE_NAME, '`;')
    FROM information_schema.tables
    WHERE table_schema = database()
      AND data_free / (data_length + index_length + data_free) > 0.6
    ORDER BY data_free DESC;
    Des commandes SQL, avec lesquelles vous pouvez libérer de la mémoire, sont générées. Exécutez les commandes Optimize dans votre fenêtre SQL. dbname est le nom réel de votre base de données. +-------------------------------------------------------------------+
    | concat('optimize table `', table_schema, '`.`', table_name, '`;') |
    +-------------------------------------------------------------------+
    | optimize table `dbname`.`attemptoptions`;                         |
    | optimize table `dbname`.`attemptsimple_login_log`;                |
    | optimize table `dbname`.`attemptposts`;                           |
    | optimize table `dbname`.`attemptpostmeta`;                        |
    +-------------------------------------------------------------------+
    4 rows in set (0.01 sec)

    Notez que cette optimisation ne peut être effectuée que tant que votre base de données n'est pas verrouillée.
  • Facultatif : pour les tables innodb qui dépassent déjà l'espace de stockage maximum autorisé, vous pouvez alternativement exécuter la commande SQL suivante :
    SELECT concat("ALTER TABLE `", table_schema, "`.`", TABLE_NAME, "` ENGINE=InnoDB;")
    FROM information_schema.tables
    WHERE table_schema = database()
      AND ENGINE = 'InnoDB'
      AND data_free / (data_length + index_length + data_free) > 0.6
    ORDER BY data_free DESC;
    Des commandes SQL, avec lesquelles vous pouvez libérer de la mémoire, sont générées. Exécutez les commandes Table dans votre fenêtre SQL. dbname est le nom réel de votre base de données. +------------------------------------------------------------------------------+
    | concat('ALTER TABLE `', table_schema, '`.`', table_name, '` ENGINE INNODB;') |
    +------------------------------------------------------------------------------+
    | ALTER TABLE `dbname`.`attemptoptions` ENGINE INNODB;                         |
    | ALTER TABLE `dbname`.`attemptsimple_login_log` ENGINE INNODB;                |
    | ALTER TABLE `dbname`.`attemptposts` ENGINE INNODB;                           |
    | ALTER TABLE `dbname`.`attemptpostmeta` ENGINE INNODB;                        |
    +------------------------------------------------------------------------------+
    4 rows in set (0.60 sec)
Remarque

L'espace disque que vous avez nettoyé est libéré dans la base de données MySQL avec un délai, le temps de la prochaine mise à jour. En général, vous pouvez réutiliser votre base de données dès le lendemain.

Automatiser l'optimisation

Vous pouvez automatiser l'optimisation grâce aux tâches Cron. Pour plus d'informations sur les tâches Cron, veuillez consulter ces articles du Centre d'Assistance.