[SQL] Augmenter la limite d'une ligne
Résolu
F2000
Messages postés
27
Date d'inscription
Statut
Membre
Dernière intervention
-
F2000 Messages postés 27 Date d'inscription Statut Membre Dernière intervention -
F2000 Messages postés 27 Date d'inscription Statut Membre Dernière intervention -
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,
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,
A voir également:
- Sql server limiter le nombre de lignes
- Nombre de jours entre deux dates excel - Guide
- Ps3 media server - Télécharger - Divers Réseau & Wi-Fi
- Partage de photos en ligne - Guide
- Nombre facile - Télécharger - Outils professionnels
- Filezilla server - Télécharger - Téléchargement & Transfert
2 réponses
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.
Dans ton cas, tu dois changer la taille de ton champ dans les propriétés de ta table dans PHPMyAdmin.
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 ;)
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 ;)