Mysql
 sql >> Base de données >  >> RDS >> Mysql

est-il bon de stocker la valeur décimale en tant que varchar dans mysql ?

La réponse courte est :non, cela nuira aux performances.

La réponse la plus longue :les champs VARCHAR sont de longueur variable, ce qui signifie que le formatage des blocs de la base de données ne peut pas précompter la taille des données qui y sont remplies. Bien sûr, il y a une longueur maximale du champ, mais à part ça, c'est pire.

D'un autre côté, lire un VARCHAR puis l'interpréter pour s'adapter à un type à virgule flottante vous coûtera cher. Et cela introduit de nouvelles possibilités de problèmes. Essayez d'obtenir toutes les décimales qui représentent "11,99". J'espère que vous apportez le bon nombre de décimales, car dans VARCHAR "11.99" !="11.990".

Et puis il y a l'indexation. Habituellement, personne n'a indexé un champ décimal, mais si vous le faites, un index sur un champ VARCHAR nécessitera plus d'espace.

Dans l'ensemble, ce n'est pas une bonne idée d'enregistrer quelque chose dans un type de champ non spécifique. Dans la structure de la base de données, il est généralement considéré comme une bonne pratique d'être aussi précis que possible.