11
votes

MySQL: type de données le plus efficace pour stocker de longues notes?

Je voulais créer une base de données de note personnelle, pour stocker des notes dans HTML ou texte assez long. Quelle serait la différence entre varchar et texte , lequel serait plus efficace à utiliser?

Je pense que varchar est max mesure 65535 caractères, je ne peux pas envelopper ma tête si je contiendrai quelque chose de plus grand que cela. Je me demande si un certain type de données peut être automatiquement comprimé, bien que je ne pense pas que ce soit aussi simple (puisqu'il s'agit de trop de temps de processeur en temps réel).


0 commentaires

3 Réponses :


3
votes

Un texte afaire est limité à 65k caractères, moyentext est de 16 millions et longtext est de 4 Go max: -)


2 commentaires

Et rien ne vous limite de la compression et de la décompression des données (4 exemple, via GZIP) avant de le stocker. Dans ce cas, vous devrez utiliser des types de blob.


Def. Penserait à ce que ce soit, mais ce serait ennuyant de ne pas pouvoir voir de texte et de les utiliser dans des requêtes et de ce que je voudrais certainement compresser un fichier 4MB +, merci!



12
votes

Si vous n'êtes pas sûr si le texte sera toujours plus court que 65535 caractères, ne risquez pas d'utiliser varchar . Je pense que vous devriez définitivement utiliser MODIORTEXT ou même Type mais pour augmenter les performances les placez dans une table séparée. Par exemple, Créer une table Notes qui contiendra la date d'identification de la note, du titre, de la date de création et de l'utilisateur qui la crée ainsi que Notestext Table qui sera associé à notes Mais ne contiendra que la note ID et votre colonne de texte. Cela empêchera de querieng sur des colonnes de type texte et de la récupérer de la base de données lorsqu'elle n'est pas vraiment nécessaire.


4 commentaires

J'ai trouvé cela la réponse la plus pertinente, je veux tout assez mettre dans une autre table juste pour la pratique de l'efficacité, merci beaucoup.


C'est faux. Le texte dans MySQL est limité aux mêmes 65535 caractères.


Ok .. vous l'avez déjà dit, il peut utiliser MediumText à la place, mais pourquoi écrivez-vous la même chose pour la troisième fois? Vous pensez qu'il ne voyait pas votre réponse?


Eh bien, après avoir accepté une mauvaise solution, il était tout à fait probable qu'il ne remarquerait pas de nouveau commentaire :-) Toute façon, c'est correct maintenant.



2
votes

La longueur maximale de Varchark n'est pas de 65535 octets; La longueur maximale de la ligne est que le nombre d'octets et la longueur maximale du variateur dépendent de quelles autres colonnes que vous avez dans la table. Pour cette raison, si vous avez probablement besoin de nombreux personnages, vous aurez besoin d'une colonne de texte ou de blob. Celles-ci sont maintenues séparément sur le disque, il a donc tendance à être plus lent (pas en usage de la CPU mais en temps total).


0 commentaires