9 votes

Les types de texte MySQL et l'utilisation d'une taille plus grande. Est-ce efficace?

Je conçois une base de données pour stocker des documents. Certains de ces documents font juste plus de 64 ko et aucun ne serait plus grand que 128 ko. Il semble que ma seule solution soit de spécifier mon texte en tant que MEDIUMTEXT qui a une taille maximale de 16 Mo. Cela semble juste exagéré pour ce que je fais surtout que je stocke probablement une centaine de documents par jour. Je suppose que la question que je me pose est de savoir si je vais rencontrer un impact sur les performances puisque MEDIUMTEXT est beaucoup plus grand que TEXT. Je ne sais pas grand chose sur les aspects internes de MySQL pour savoir s'il y a un problème d'allocation étrange sur le disque ou la mémoire qui reviendra me mordre. Bien sûr, nous pourrions tout simplement tout faire dans quelque chose de moderne comme MongoDB mais je ne peux pas obtenir d'accord sur cela. :-(
Au cas où quelqu'un d'autre serait confronté à cela à l'avenir, j'ai pensé noter les types de texte dans MySQL et leurs tailles maximales pour référence.

TINYTEXT 256 octets
TEXT 65,535 octets ~64 ko
MEDIUMTEXT 16,777,215 octets ~16 Mo
LONGTEXT 4,294,967,295 octets ~4 Go

Tout conseil que quelqu'un a serait apprécié. Janie

15voto

Joachim Isaksson Points 85969

À partir de la documentation de MySQL sur les exigences de stockage, il semble que vous n'ayez pas besoin de vous inquiéter trop de l'utilisation d'un type de texte plus long ;

L représente la longueur réelle en octets d'une valeur de chaîne donnée.
...
Par exemple, le stockage d'une valeur MEDIUMTEXT nécessite L octets pour stocker la valeur plus trois octets pour stocker la longueur de la valeur.

En d'autres termes, mediumtext n'exige pas la longueur maximale complète pour chaque valeur stockée, elle exige simplement la longueur réelle des données que vous souhaitez stocker + 3 octets.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X