Question MySQL, choix TEXT ou VARCHAR et autre ? sur l'UTF-8

Nouveau WRInaute
Bonjour a tous,

Dans le cadre d'un projet sur lequel je bosse avec un ami, et qui intérréssera je pense (je l'espére) nos chers amis webmaster :)
nous avons quelques intérrogations concernant l'optimisation de MySQL.

- Dans une des tables MySQL, il nous faudra stocker le titre des sites
et leur URL. Je voudrais savoir quel serait le meilleur type pour les
deux : TEXT ou VARCHAR, d'un point de vue d'optimisation (rapidité et
occupation dans le disque). Est-ce que VARCHAR pourrait prendre plus
de place que TEXT dans le disque, car il n'est pas variable ? Est-ce
que TEXT est plus lent/rapide que VARCHAR lors des comparaisons ?
VARCHAR serait mieux pour les URL et TEXT mieux pour les titre ?

- Côté interclassement, que choisir ? Pour le Titre, j'ai choisi
l'UTF-8, car cela pourrait être intéressant pour les sites asiatiques
(entre autres). Pour les URL, un "ascii_general_ci" suffirait ? Il
faudrait passer en latin1 ?

- Je cherche un moyen simple de convertir le titre des sites en UTF-8.
Suis-je obligé de lire l'encodage du site en me basant sur ce qu'il y
a dans les <meta> ? Y-a-t-il un moyen plus simple, qui me permettrait
de détecter automatiquement l'encodage, puis de convertir le tout en
UTF-8 (c'est toujours permis de rêver ^_^ après tout, pourquoi pas ?).

Merci infiniment
 
WRInaute passionné
2) je te conseille de tout stocker en UTF-8, tu y gagneras en simplicite.

3) c'est plus complique que ca ;)
il faut regarder s'il y a une meta dans le document
sinon il faut regarder l'entete Content-Type HTTP
sinon c'est du iso-8859-1 (mais pas toujours)
donc faut deviner...

Pour deviner, y a des libs dispos. Ca marche assez bien.
 
WRInaute passionné
Le char est est donnée Fixe que tu pourrais par exemple mettre pour des codes de sécurité sociale ou des champs dont la taille ne change jamais. La vitesse est optimisé au niveau des requêtes.

Varchar comme son nom l'indique a une taille variable entre jusqu'à 255. Ca fait un peu court pour l'utiliser dans le contenu d'un post d'un forum par exemple mais correspond bien pour des titres ou des adresses.

On lui préférera pour des pavés de texte la valeur TEXT. Dans la prochaine version de Mysql Varchar disparaitra au profit de varchar2 qui sera un mélange varchar/TEXT.

Après au niveau des optimisation de recherche, tu peux indexé les champs. De toute facon, la recherche et sa vitesse dépend surtout de la taille du champs.

L'utf8 est conseillé pour les formats, la compatibilité est plus universelle qu'un latin-1.
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut