Maison > Questions et réponses > le corps du texte
在日常开发中,我一般用mysql数据储存数据,memcache储存缓存,但是我不知道如mongodb这一类的nosql数据库到底相比mysql这种数据库有什么优势,在什么场景下我改选择mongodb这种数据库?希望各位能用浅显的语言帮忙解释下。
怪我咯2017-05-02 09:21:43
Donnez un exemple :
mysql : Il y a 5 champs dans une table. Votre programme a été écrit, et ensuite vous devez ajouter deux champs ici, vous allez donc d'abord dans la base de données pour modifier la structure de la table, ajoutez des champs, puis revenez au programme pour modifier le code SQL.
mongodb : Un objet a 5 attributs. Votre programme a été écrit. Ensuite, vous devez ajouter deux attributs (champs) ici. Vous pouvez les ajouter directement dans le programme et tout ira bien.
Dans une base de données relationnelle, un enregistrement est une ligne, un champ est une colonne et les données sont à l'intersection des lignes et des colonnes. Plusieurs lignes et colonnes doivent suivre la même structure bidimensionnelle.
Base de données non relationnelle, les attributs appartiennent uniquement aux objets. Les objets sont indépendants les uns des autres.
大家讲道理2017-05-02 09:21:43
Utilisez la combinaison mysql+memcache pour les affaires à long terme et la combinaison mongodb+redis pour les affaires de journaux statistiques ou les transactions temporaires sur le front du PM.
L'avantage de mongodb est la flexibilité, l'inconvénient est aussi la flexibilité, et la stabilité n'est pas aussi bonne que MySQL
漂亮男人2017-05-02 09:21:43
Par rapport aux bases de données relationnelles traditionnelles, MongoDB est l'un des représentants des bases de données non relationnelles. Pour savoir quand utiliser MongoDB, vous devez d'abord connaître ses fonctionnalités, ce qu'il peut et ne peut pas faire, puis décider de l'utiliser ou non en fonction de la situation spécifique. Il est recommandé de lire d'abord la partie introductive de la documentation officielle, qui répertorie les fonctionnalités les plus critiques de MongoDB, et presque toutes les autres fonctions tournent autour de ces fonctionnalités. Ces fonctionnalités sont souvent les facteurs clés pour décider d'adopter ou non MongoDB.
Voici un article qui présente brièvement et grossièrement comment choisir.
Cependant, avec le développement de la technologie, les frontières entre ce qu'on appelle « relationnel » et « non relationnel » sont devenues de plus en plus floues. D'une part, les SGBDR traditionnels tels que Postgre et MySQL ont commencé à prendre en charge le non-relationnel. des modèles relationnels tels que JSON D'un autre côté, MongoDB JOIN a également commencé à être pris en charge, et même les transactions le seront à l'avenir. Maintenant que les frontières sont devenues floues, il est impossible de généraliser quelle technologie doit être utilisée. Le résultat de la comparaison est souvent que les deux peuvent être utilisés. Mais vous pouvez en effet comparer ce que vous gagnerez et ce que vous perdrez si vous utilisez une certaine technologie dans votre projet, puis évaluer si le gain peut compenser la perte, et finalement décider d'adopter ou non cette technologie.
ringa_lee2017-05-02 09:21:43
Il est préférable d'utiliser mongodb lorsque la structure des données n'est pas certaine. Par exemple, dans votre base de données sql, vous devez d'abord définir les types, les noms, les longueurs de tous les champs, etc. Cela manque de flexibilité. n'existe pas dans un certain domaine, faites comme si ce n'était pas le cas.
Par exemple, supposons que notre serveur souhaite enregistrer les événements système dans la base de données. Lorsqu'un certain utilisateur fait quelque chose, vous devez parfois enregistrer le contenu du corps d'origine du message qu'il a envoyé pour requête, et parfois non, lorsque vous n'avez pas besoin d'enregistrer le contenu du message, si vous définissez une chaîne en SQL. Si la longueur est de 1000, cet espace est gaspillé, mais pas mongodb. Et lors de la récupération de cet enregistrement, la base de données SQL renverra la structure que vous avez définie, même si l'un des champs est vide, et mongodb n'inclut pas le champ vide lors de la sauvegarde, et la même chose ne se produira pas lors de sa récupération.
De plus, mongodb prend très bien en charge diverses structures json. Bien sûr, cela ne devrait pas être l'objectif principal de l'utilisation de mongodb.