Rechercher : dans
Par :

[SQL] Augmenter la limite d'une ligne

Dernière réponse le 26 jan 2009 à 08:25:09 F2000, le 25 jan 2009 à 22:33:59 
 Signaler ce message aux modérateurs

Bonjour,

Mon site web (chez OVH) dispose d'une base de données.
Pour une de mes tables j'ai un champ de type TEXT qui contient le texte de mes pages.

Je suis en train d'écrire un article conséquent (40 000 caractères pour le moment) et je viens de m'apercevoir que lors de la sauvegarde de mon article, il me coupe celui-ci vers la fin.

Après recherche, j'ai lu qu'il existait une limite de 8060 octets par ligne de table mais que le champ TEXT autorisait jusqu'à 2 Go de données (soit 1 milliards de caractères d'après le dit-site). Le site parlait aussi d'une option ROW OVERFLOW permettant de passer outre cette limite.

Ma question est donc simple: y'a-t-il un moyen d'augmenter la capacité admise par ma base pour une ligne de table ?

Cordialement,

Configuration: Windows Vista
Firefox 3.0.5

Meilleures réponses pour « [SQL] Augmenter la limite d'une ligne » dans :
Les lettres recommandées en ligne VoirUtiliser Internet pour envoyer ses lettres recommandées Internet permet aujourd'hui aux entreprises d'envoyer des lettres recommandées 24 heures sur 24 et 7 jours sur 7. L'offre en ligne ne se limite pas seulement aux services de La Poste. D'autres...
Les paiements en ligne VoirLes moyens de paiement en ligne Renouveler son nom de domaine, acheter des fournitures de bureau, payer ses liens sponsorisés, acheter des billets de train ou d’avion pour ses voyages d’affaires… un chef d’entreprise a mille et une bonnes raisons...
Créer une boutique en ligne VoirCréer une boutique en ligne Envisager de se lancer dans la vente sur Internet à travers une boutique en ligne demande de la réflexion et l'étude précise de votre projet. Avantages d'une boutique en ligne Contraintes d'une boutique en...
SQL - Mise à jour d'informations VoirLe SQL permet la modification d'une table par un utilisateur (pour peu qu'il ait les droits suffisants...). La modification d'une table consiste à: ajouter des tuples modifier des tuples existants ou bien supprimer des tuples Insertion de...
SQL - Commande SELECT VoirLe langage de manipulation de données Le SQL est à la fois un langage de manipulation de données et un langage de définition de données. Toutefois, la définition de données est l'oeuvre de l'administrateur de la base de données, c'est pourquoi la...
Le langage SQL VoirQu'appelle-t-on SQL? SQL (Structured Query Language, traduisez Langage de requêtes structuré) est un langage de définition de données (LDD, ou en anglais DDL Data Definition Language), un langage de manipulation de données (LMD, ou en anglais DML,...

1

HostOfSeraphim, le 25 jan 2009 à 22:37:23
  • +1

8060 octets par enregistrement, ça concerne SQL Server... pas forcément les autres SGBD, MySQL dans ton cas je pense. Par ailleurs, ça ne concerne pas les champs de type TEXT (entre autres).

Dans ton cas, tu dois changer la taille de ton champ dans les propriétés de ta table dans PHPMyAdmin.


Configuration : Linux Debian Lenny / Noyau 2.6.26 / Gnome / Iceweasel 3
Connexion Internet : ADSL Orange 8M (Livebox)

Répondre à HostOfSeraphim

2

 F2000, le 26 jan 2009 à 08:25:09

OK.
Mais je fais comment pour changer la taille ? Un champ TEXT n'est pas par défaut d'une taille adaptable ?
Je dois spécifier une valeur spécifique ? Car actuellement il me refuse une valeur pour le champ TEXT (ou du moins ne la prend pas en compte).

Ps: Et effectivement j'utilise MySQL et PhpMyAdmin

Edit : Après de nouvelles recherches, MySQL bloque ma requête à 65535 caractères ce qui correspond à la taille limite pour le champ TEXT.
Maintenant je lis sur la doc de MySQL (http://dev.mysql.com/doc/refman/5.0/fr/blob.html) :

"La taille maximale d'un objet BLOB ou TEXT est déterminée par son type, mais la valeur la plus grande que vous pouvez transmettre au programme client est déterminée par la quantité de mémoire disponible sur le serveur et par les tailles des buffers de communication. Vous pouvez changer la taille des buffers de communication, mais vous devez le faire sur le serveur et le client en même temps. See Section 7.5.2, « Réglage des paramètres du serveur ».

Par exemple, mysql et mysqldump vous autorises tous les deux à modifier la valeur cliente de max_allowed_packet."

Mais ça m'étonne quand même que ce soit un problème de buffers...

Votre avis ?

Edit2: Bon finallement, j'ai changé mon type TEXT en LONGTEXT et ça marche. Le programme d'optimisation me conseille même de mettre en MEDIUMTEXT :p
Bref j'aurais au moins appris que le type "TEXT" est pas infini et que y'a plus grand.

Merci ;)

Répondre à F2000
Collection CommentÇaMarche.net