| Ordre
alphabétique |
|
| Par
catégories |
|
| Par
pays |
|
| Par
langue |
|
| PHP
- MYSQL |
|
| Outils
webmasters |
|
| Partenaires |
|
 |
| |
|
MYSQL Les types BLOB et TEXT |
Une valeur
de type BLOB est un objet binaire de
grande taille, qui peut contenir une
quantité variable de données.
Les quatre types BLOB (TINYBLOB, BLOB,
MEDIUMBLOB, et LONGBLOB) ne différent
que par la taille maximale de données
qu'ils peuvent stocker.
Les quatre types TEXT (TINYTEXT, TEXT,
MEDIUMTEXT, et LONGTEXT correspondent
aux types BLOB équivalents, et
ont les mêmes contraintes de stockage.
Les seules différences entre
les colonnes de type BLOB et celles
de type TEXT se situent aux niveau des
tris et comparaisons : Les tris, faits
sur les BLOB, contrairement à
ceux faits sur les TEXT, tiennent compte
de la casse. En d'autres termes, une
valeur TEXT est une valeur BLOB insensible
à la casse.
Si vous assignez une valeur trop grande
à une colonne de type BLOB ou
TEXT, la valeur sera tronquée
à la taille maximale possible.
Dans la majorité des cas, vous
pouvez considérer une colonne
de type TEXT comme une colonne de type
VARCHAR, aussi grande que vous le souhaitez.
De même, vous pouvez considérer
une colonne de type BLOB comme une colonne
de type VARCHAR BINARY. Les seules différences
sont :
Vous pouvez indexer les colonnes de
type BLOB ou TEXT à partir de
la version 3.23.2 de MySQL. Les versions
plus anciennes ne peuvent pas indexer
ces colonnes.
Pour les index des colonnes BLOB et
TEXT, vous devez spécifier une
taille d'index. Pour les colonnes de
type CHAR et VARCHAR, la taille du préfixe
est optionnelle.
Il n'y a pas de suppression des espaces
finaux lors du stockage de valeur dans
des colonnes de type BLOB et TEXT, ce
qui est le cas dans pour les colonnes
de type VARCHAR.
Les colonnes BLOB et TEXT ne peuvent
avoir de valeur par défaut. (DEFAULT)
MyODBC considère les valeurs
BLOB comme des LONGVARBINARY et les
valeurs TEXT comme des LONGVARCHAR.
Vous pouvez rencontrer les problèmes
suivants, à cause de la grande
taille des colonnes de type BLOB et
TEXT, lors de leur utilisation :
Si vous voulez utiliser les commandes
GROUP BY ou ORDER BY sur une colonne
de type BLOB ou TEXT, vous devez d'abord
la convertir en un objet de taille fixe.
Le meilleur moyen est d'utiliser la
fonction SUBSTRING. Par exemple :
mysql> SELECT
comment FROM nom_de_table,SUBSTRING(comment,20)
AS substr
-> ORDER BY substr;
Si vous le ne faites pas, seuls les
max_sort_length premiers octets de la
colonne seront utilisés pour
le tri. La valeur par défaut
de max_sort_length est 1024. Cette valeur
peut être modifiée en utilisant
l'option -O au démarrage du serveur
mysqld. Vous pouvez utiliser la commande
GROUP BY sur une colonne de type BLOB
ou TEXT en spécifiant la position
de la colonne, ou avec un alias :
mysql> SELECT
id,SUBSTRING(blob_col,1,100) FROM nom_de_table
GROUP BY 2;
mysql> SELECT id,SUBSTRING(blob_col,1,100)
AS b FROM nom_de_table GROUP BY b;
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.
Par exemple, mysql et mysqldump vous
autorises tous les deux à modifier
la valeur cliente de max_allowed_packet.
Notez que chaque valeur BLOB ou TEXT
est représentée en interne
par un objet alloué séparément,
contrairement à tous les autres
types de colonne, pour lesquels la place
de stockage est allouée une fois
pour chaque colonne, lorsque la table
est ouverte.
MySQL Reference Manual that can
be found at dev.mysql.com. The original
Reference Manual is in English, and
this translation is not necessarily
as up to date as the English version.
|
|
|
|
| |
|
| Menu |
|
| Ressources |
|
| Gifs
animés |
|
| Cliparts |
| |
| Services
divers |
|
 |
| |
|
|