web-dev-qa-db-fra.com

Meilleure approche pour une base de données de longues chaînes

J'ai besoin de stocker des questions et des réponses dans une base de données. Les questions seront une à deux phrases, mais les réponses seront longues, au moins un paragraphe, probablement plus.

La seule façon dont je connais pour le faire en ce moment est une base de données SQL. Cependant, je n'ai pas l'impression que ceci est une bonne solution car aussi loin que j'ai vu, ces bases de données ne sont pas utilisées pour des données de ce type ou de ce type. Est-ce la bonne façon d'aller ou existe-t-il une meilleure façon de stocker ces données? Y a-t-il un meilleur moyen que de stocker des chaînes brutes?

12
gsingh2011

Mongodb est génial, mais vous savez SQL. Il n'y a rien de mal à stocker de longues réponses dans les champs. Vous pouvez stocker des images ou même des fichiers dans SQL. Je pense que la taille maximale du champ est de 2 Go.

Je suis presque positif que cette réponse elle-même est stockée dans un champ de table quelque part.

Quant à y avoir des milliers d'entre eux, pas de problème. Même des millions ne devraient pas être un problème. Vous pouvez envisager d'utiliser l'indexation complète du texte si vous recherchez sur le terrain des mots-clés ou de quelque chose. Mais j'essaie de ne pas optimiser jusqu'à ce que je vois un problème. Les ordinateurs sont bon marché, le stockage est essentiellement gratuit.

19
DanielEli

Il n'y a pas de problème à stocker de longs texte dans des bases de données (SQL ou autre). C'est à quel point chaque entrée de blog (Think WordPress), article de presse et Forum Post (Pensez PhPBB) sur Internet est stockée. Je ne connais pas les détails spécifiques de la configuration de Stack Exchange, mais je suis sûr que votre question est aussi stockée dans une base de données. La plupart des bases de données SQL ont un type de champ TEXT ou l'équivalent juste dans le but de stocker des données textuelles de toute longueur. Beaucoup ont également des systèmes de recherche en texte intégral en place.

Prenez des décisions techniques basées sur des connaissances techniques et de la compréhension, pas des sentiments.

6
GrandmasterB

Oui c'est la bonne façon d'aller. Stockage des chaînes dans une base de données SQL est ce que vous voulez faire. Une de mes tables dans la DB a sur une gig de données en clairexuant et elle fonctionne bien.

Si vous êtes inquiet pour l'espace de stockage - rappelez-vous que c'est bon marché!

Si vous êtes inquiet pour la performance - alors ne vous inquiétez pas, une bonne base de données peut augmenter (ou out) jusqu'à ce que vous souhaitez la jeter.

La dernière chose que vous voulez faire est de commencer à optimiser maintenant pour le souci de celles-ci (cordes de compression avant de les mettre dans la DB ou quelque chose de noix) avant que cela ne devienne un problème. Vous vous donnez juste plus de travail.

5
Rocklan

Il n'y a pas de problème au stockage de grandes chaînes ou de données binaires. J'ai travaillé avec une base de données avec plus d'un téraoctet de données binaires et travaillé très bien (Postgres) et la seule mauvaise chose était la durée de la sauvegarde.

La grande question est la suivante: "Aurez-vous besoin de recherches constantes dans ce texte?"

Si vous allez chercher des chaînes dans le texte, vous pouvez penser dans une solution d'index:

2
Rodrigo Menezes