Maison > base de données > tutoriel mysql > Comment puis-je corriger l'erreur « Taille de ligne trop grande » de MySQL ?

Comment puis-je corriger l'erreur « Taille de ligne trop grande » de MySQL ?

Susan Sarandon
Libérer: 2024-12-08 17:46:11
original
582 Les gens l'ont consulté

How Can I Fix MySQL's

Ajustement de la limite de taille de ligne MySQL pour les données surdimensionnées

Le message d'erreur "Taille de ligne trop grande (> 8126)" indique qu'une ligne dans une table MySQL dépasse la limite par défaut de 8 Ko. Plusieurs facteurs contribuent à ce problème, notamment les types de données utilisés dans les colonnes du tableau.

Une solution potentielle consiste à modifier certaines colonnes en types de données TEXTE ou BLOB, car celles-ci peuvent contenir de plus grandes quantités de données. De plus, l'utilisation de ROW_FORMAT=DYNAMIC ou ROW_FORMAT=COMPRESSED peut également aider à réduire la taille des lignes en stockant les données de manière plus efficace.

Cependant, le message d'erreur fourni suggère que même avec ces modifications, la taille des lignes peut toujours être trop grand. En effet, le moteur de stockage InnoDB stocke les 768 premiers octets de données BLOB en ligne dans la ligne, limitant ainsi davantage la taille de la ligne.

Pour résoudre ce problème, envisagez de mettre en œuvre les solutions suivantes :

  1. Passer au fichier Barracuda Format :

    • Ajoutez ce qui suit au fichier my.cnf :

      • innodb_file_per_table=1
        Copier après la connexion
    - This file format removes the issue of storing BLOB data inline, allowing larger rows to be accommodated.
    Copier après la connexion
  2. Utiliser ROW_FORMAT=COMPRESSED :

    • Exécutez la requête suivante pour modifier la structure de la table :

      • ALTER TABLE table_name
        ENGINE=InnoDB
        ROW_FORMAT=COMPRESSED
        Copier après la connexion
    - This setting reduces the row size by compressing non-key columns, potentially resolving the issue.
    Copier après la connexion

Si les solutions ci-dessus ne parviennent toujours pas à résoudre le problème problème, envisagez de passer temporairement au moteur MyISAM pour stocker les données temporaires en ajoutant la ligne suivante au fichier my.cnf :

internal_tmp_disk_storage_engine=MyISAM
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal