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

MySQL meilleur moyen de stocker de longues chaînes

D'une manière générale, ce n'est pas une question qui a une réponse "correcte". Il n'y a pas de type de stockage de texte "de longueur infinie" dans MySQL. Vous pouvez utiliser LONGTEXT , mais qui a toujours une limite supérieure (absurdement élevée). Pourtant, si vous le faites, vous donnez un coup de pied à votre SGBD pour avoir à faire face à cette blob absurde d'une colonne pour votre texte de 50 caractères. Sans parler du fait que vous n'en faites pratiquement rien.

Ainsi, la plus grande partie de la protection future(TM) est probablement offerte par LONGTEXT . Mais c'est aussi une très mauvaise méthode pour résoudre le problème. Honnêtement, je réexaminerais les exigences de l'application. Stocker des chaînes qui n'ont pas de "domaine" (comme dans, étant bien défini dans leur application) et une longueur arbitraire n'est pas l'une des forces du SGBDR.

Si je voulais résoudre ce problème au niveau de la "conception d'application", j'utiliserais le magasin de valeurs clés NoSQL pour cela (et je suis aussi anti-NoSQL-hype que possible, donc vous savez que c'est sérieux), même bien que je reconnaisse que c'est un changement assez coûteux pour un changement aussi mineur. Mais si c'est une indication de ce que votre SGBD va éventuellement contenir, il serait peut-être plus prudent de changer maintenant pour éviter ce même problème cent fois à l'avenir. Le domaine de données est très important dans RDBMS, alors qu'il est explicitement mis de côté dans les solutions non relationnelles, ce qui semble être ce que vous essayez de résoudre ici.

Coincé avec MySQL? Augmentez-le simplement à VARCHAR(1000) . Si vous n'avez aucune exigence pour vos données, peu importe ce que vous faites de toute façon.