Maison >base de données >tutoriel mysql >Pourquoi MySQL génère-t-il une erreur de taille de ligne trop grande (1118) et comment puis-je la corriger ?

Pourquoi MySQL génère-t-il une erreur de taille de ligne trop grande (1118) et comment puis-je la corriger ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-04 07:53:35155parcourir

Why Does MySQL Throw a Row Size Too Large Error (1118) and How Can I Fix It?

Erreur de taille de ligne MySQL trop grande (code 1118) : une explication complète

Lors de la tentative de création d'une table avec un nombre important de colonnes , comme dans l'exemple fourni avec 325 colonnes, MySQL peut générer une erreur indiquant que la taille de la ligne dépasse la limite maximale. Cette erreur est courante lorsque vous travaillez avec de grandes tables et peut être assez frustrante.

L'une des étapes de dépannage mentionnées dans la question consiste à remplacer les colonnes VARCHAR par TEXT ou BLOB. Les types de données TEXT et BLOB sont utilisés pour stocker de grandes quantités de données, telles que du texte ou des données binaires, et peuvent contenir plus de données que VARCHAR. De plus, l'introduction du format de fichier Barracuda dans MySQL vise à améliorer les performances et l'évolutivité, en particulier pour les grandes tables.

Cependant, même après la mise en œuvre de ces mesures, la question indique que l'erreur persiste. Pour résoudre ce problème, une autre solution consiste à modifier le paramètre de configuration MySQL innodb_strict_mode.

Définir innodb_strict_mode sur 0 :

Selon la documentation MySQL, définir innodb_strict_mode sur 0 désactive certains contrôles et permet un traitement plus indulgent de la validation des données. Cela peut résoudre l'erreur liée à la taille des lignes dépassant la limite.

Comment modifier innodb_strict_mode :

  1. Ouvrez le fichier de configuration MySQL (my.ini ou mon .cnf).
  2. Localisez la section [mysqld].
  3. Ajoutez ce qui suit line :
innodb_strict_mode = 0
  1. Enregistrez le fichier de configuration et redémarrez le service MySQL.

Une fois innodb_strict_mode défini sur 0, l'application de la limite de taille de ligne est assouplie , permettant à la table d'être créée sans l'erreur précédente.

Il est important de noter que la désactivation du mode strict peut avoir des implications sur l'intégrité des données et la précision. Par conséquent, il est recommandé d'utiliser cette solution avec prudence et de considérer l'impact sur les fonctionnalités de la base de données.

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!

Déclaration:
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