Je prévois de stocker un json_encoded
chaîne sur ma base de données. Je ne peux pas dire avec précision la durée, mais je suis sûr que ce sera long. Ma préoccupation est le type de champ que je vais utiliser pour cela, est-ce blob
ou text
?
Je préfère celui où je peux économiser de l'espace autant que possible sur la recherche rapide, en tout cas j'ai une autre colonne où je devrais simplement indexer.
blob
est généralement pour des choses comme les images, les binaires, etc. text
devrait être assez bon pour votre cas, ou vous pouvez utiliser longtext
qui a une capacité d'espace encore plus grande si c'est vraiment un préoccupation.
En ce qui concerne la recherche, puisque vous stockez json_encode
'D stuff, vous devrez toujours appeler json_decode
de toute façon pour qu'il soit utile dans votre application, je ne pense pas que le choix du type de données soit important dans ce cas.
Une meilleure façon est de normaliser la conception de votre base de données au lieu de stocker des éléments connexes dans une grande chaîne de json.
Comme indiqué dans la documentation de MySQL , depuis 5.7.8, un type de données JSON natif est pris en charge.
Le type de données JSON offre ces avantages par rapport au stockage de chaînes au format JSON dans une colonne de chaînes:
Ainsi, comme l'indique la documentation MySQL, le type de données JSON doit être utilisé et non le texte.