MySQL InnoDB ne libère pas d'espace disque après la suppression des lignes de données de la table
P粉148434742
P粉148434742 2023-10-15 00:02:19
0
2
727

J'ai une table MySQL utilisant le moteur de stockage InnoDB ; elle contient environ 2 millions de lignes de données. Lorsque je supprime des lignes de données de la table, cela ne libère pas l'espace disque alloué. Après avoir exécuté la commande optimize table, la taille du fichier ibdata1 n'a pas non plus diminué.

Existe-t-il un moyen de récupérer de l'espace disque depuis MySQL ?

Je suis dans une mauvaise situation : l'application fonctionne dans environ 50 emplacements différents et maintenant je manque d'espace disque dans presque tous.

P粉148434742
P粉148434742

répondre à tous(2)
P粉183077097

J'ai moi-même rencontré le même problème.

Ce qui se passe, c'est que même après la suppression de la base de données, innodb ne libère toujours pas d'espace disque. Je dois exporter, arrêter MySQL, supprimer les fichiers manuellement, démarrer MySQL, créer une base de données et un utilisateur, puis importer. Dieu merci, je n'ai que 200 Mo de lignes, mais cela a enregistré 250 Go de fichier innodb.

La conception a échoué.

P粉340980243

MySQL ne réduit pas la taille d'ibdata1. une fois. Même si vous utilisez 优化表 pour libérer l'espace utilisé par les enregistrements supprimés, il le réutilisera plus tard.

Une autre méthode consiste à configurer le serveur pour qu'il utilise innodb_file_per_table,但这需要备份、删除数据库和恢复。积极的一面是,在 优化表格.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal