2009-11-26 3 views
0

Je travaille sur un système de gestion de contenu au travail. Je vais avoir une colonne pour contenir le corps du contenu de nos utilisateurs (HTML) et je ne suis pas sûr du type de colonne à utiliser. Je ne veux pas assigner arbitrairement une longueur maximum mais je ne sais pas si l'utilisation d'un champ LONGTEXT ou BLOB est excessive.Quel type de données dois-je utiliser pour ma colonne? [MySQL]

Peut-être que quelqu'un pourrait me donner un pourboire ou me diriger dans la direction d'une sorte de l'article « meilleures pratiques » pour ce genre de choses? :)

Toute aide est appréciée

Répondre

0

Vous devriez GZip et Base64 coder le HTML puis le stocker dans une colonne de texte.

+0

Quel est l'avantage de GZip? Est-ce que je le ferais pour la compression ou y a-t-il un autre avantage qui me manque? – Gazillion

+0

Je dirais que la compression est un énorme avantage. Vous pouvez réduire de moitié le temps de transfert de votre base de données vers le serveur Web (peut-être exagéré, mais il y a une augmentation de la vitesse). De plus, au fil du temps, vous aurez besoin de beaucoup moins d'espace de stockage pour le HTML. – ChaosPandion

0

Utilisez LONGTEXT afin que vous puissiez le rechercher.

+0

Si la recherche est une exigence, ce serait la meilleure option. –

+0

Qui va chercher à travers un vilain morceau de HTML? – ChaosPandion

+0

Depuis quand MySQL demande-t-il que le champ LONGTEXT soit recherché? – William

2

Je recommande la lecture http://dev.mysql.com/doc/refman/5.0/en/string-type-overview.html si vous connaissez les contraintes de taille de chaque champ. Ensuite, vous pouvez choisir en fonction de votre compréhension de l'application si vous devriez autoriser plus.

texte une colonne de texte d'une longueur maximale de 65 535 (216-1) caractères

Text moyenne une colonne de texte d'une longueur maximale de 16777215 (224-1) caractères.

Texte long Colonne TEXT d'une longueur maximale de 4 294 967 295 ou de 4 Go (232 - 1) caractères.

Je pense que vous devriez définir une sorte de limite. Il pourrait être utile de regarder ce que fait un autre logiciel (comme Word Press) par exemple.

En ce qui concerne ChaosPandion: GZip est binaire, si vous allez faire qu'il devrait utiliser à la place blob.

+0

J'ai mis à jour ma réponse en ce qui concerne votre COMMENTAIRE. – ChaosPandion

+0

Rappelez-vous également que la colonne Texte (comme la colonne varchar) a une longueur variable. Cela signifie qu'il n'utilise que la quantité d'espace contenue dans le champ (contrairement à CHAR). Le seul espace utilisé est un préfixe de 2 octets pour que la base de données connaisse la taille totale du champ. – William

Questions connexes