2010-11-08 66 views
9

Nous avons une très grande table historique qui contient une colonne avec au plus 500 caractères UTF8, et l'espace disque se développe très vite!MySQL TEXT ou VARCHAR

Nous avons au moins 2 millions de lignes par jour ... et nous nous demandions quel serait le meilleur travail (surtout en stockage mais aussi en performance)? TEXTE ou VARCHAR (512)?

+1

http://www.pythian.com/news/7129/text-vs-varchar/ –

Répondre

2

This est une information utile; Je pense en général, la réponse est le varchar est généralement le meilleur pari.

1

A partir du manuel MySQL:

À bien des égards, on peut considérer qu'une colonne comme une colonne varbinary blob que peut être aussi grand que vous le souhaitez. De même, vous pouvez considérer une colonne TEXT comme une colonne VARCHAR. Blob et TEXTE diffèrent de VARBINARY et VARCHAR de la manière suivante:

There is no trailing-space removal for BLOB and TEXT columns when values 

sont entreposés ou récupérés. Avant MySQL 5.0.3, cela diffère de VARBINARY et VARCHAR, pour lesquels les espaces de fin sont supprimés lorsque les valeurs sont stockées.

On comparisons, TEXT is space extended to fit the compared object, 

exactement comme CHAR et VARCHAR.

For indexes on BLOB and TEXT columns, you must specify an index 

longueur de préfixe. Pour CHAR et VARCHAR, une longueur de préfixe est facultative. Voir la section 7.5.1, "Index de colonnes".

BLOB and TEXT columns cannot have DEFAULT values. 

http://dev.mysql.com/doc/refman/5.0/en/blob.html