Le contenu de cet article concerne une brève discussion sur les connaissances en matière de bases de données à partir de MongoDB. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Le sujet d'aujourd'hui est de parler des bases de données de MongoDB. Dans les projets quotidiens, nous utilisons généralement MySQL comme base de données, mais une fois qu'il y a un problème, nous entendons souvent quelque chose comme "Pourquoi ne pas le remplacer par" Essayez MongoDB", alors parlons avec désinvolture des bases de données
Disons-le dans les termes les plus simples, une base de données est un endroit qui stocke des données. Entrepôt
Une base de données est un entrepôt qui organise, stocke et gère les données selon une certaine structure de données
Les programmes que nous écrivons s'exécutent tous en mémoire. Une fois le programme terminé ou l'ordinateur en panne, toutes les données du programme seront perdues ; nous devons donc conserver certaines données du programme sur le clavier, pour garantir la sécurité des données.
La base de données est un choix courant pour la persistance de données de gros volumes, 1. Fichier 2. Base de données
La base de données est structurée
La base de données peut fournir diverses interfaces pour rendre le traitement des données (ajout, suppression, modification et requête) rapide et pratique
Divers langages (PHP, jsp, .net..) fournissent des interfaces complètes
Popularité des bases de données (source : https://db- moteurs.com /en/ranking)
Il ressort des données statistiques que le SGBD le plus populaire est « relationnel », parmi les meilleurs cinq Occupant quatre places, les données ont été étendues aux dix premières et les bases de données relationnelles représentent également sept places.
Open source, seules les entreprises doivent acheter une licence
Large gamme d'utilisations : peut être largement utilisé sur la plupart des plateformes telles que Linux, Windows , Ubuntu, Mac OS 🎜>
Convient à PHP (PHP est le meilleur au monde) et peut également être utilisé avec d'autres langages de programmation, tels que JAVA, PERL, C, C++, etc.<.>Qu'est-ce qui rend MongoDB si attractif ?
Flexibilité : la structure du document est plus cohérente avec la façon dont les développeurs codent dans leurs langages de programmation respectifs, qui sont clairs et structurés en paires clé-valeur afin qu'ils puissent être facilement ajoutés à tout moment. chronométrer et modifier des données/documents
Prend en charge diverses requêtes : champs, expressions, requêtes de plage, fonctions JavaScript, etc.
Il n'y a pas de schéma strict : le document peut être créé avant que la structure du document ne soit définie
Les fonctionnalités de MongoDB le rendent plus adapté au traitement de grandes quantités de données
MySQL | MongoDB | |
---|---|---|
版本 | 1995- 2018(mysql 8.0) | 2009 |
结构 | 关系型 | 非关系型 |
灵活性 | 弱,需要在使用之前先定义数据库模式 | 与MySQL相比具有相当大的灵活性 - 定义不需要的模式 |
可扩展性 | 可以,但是比较困难,MySQL数据库可以垂直扩展,可以向单个服务器添加更多资源 | 比MySQL更具可扩展性。MongoDB可水平扩展,可以添加更多服务器来扩展您的数据库 |
需要DB管理员 | 是 | 否 - 开发人员和管理员都可以使用 |
适用场景 | 会计师事务所和银行,以及需要具有清晰架构的结构化数据的其他公司。非常适合具有或多或少固定要求的企业(twitter例外) | 具有实时数据,物联网,内容管理,移动应用,社交网络,面向大数据/网络分析的系统以及不需要具有清晰架构或其架构的结构化数据的业务的理想选择不断变化 |
Flexibilité
Tout d'abord, parlons de flexibilité. Par exemple, il y aura de nombreux produits dans un centre commercial, et ces produits ont leurs propres attributs uniques, tels que la taille de l'écran du téléviseur et l'efficacité de l'écran. , et les climatiseurs ont des attributs tels que le type de refroidissement et le bruit de l'unité extérieure. Il est très difficile de les insérer dans la table des produits, ce qui ajoute du travail supplémentaire aux programmeurs pour concevoir des tables de données, et MongoDB n'a pas de schéma (schéma, modèle de données). . Cela semblera très simple.
La flexibilité de MongoDB se reflète également dans les données non structurées et semi-structurées. MongoDB fournit une indexation de texte intégral et prend également en charge les requêtes et l'indexation de géolocalisation. Par exemple, un utilisateur souhaite savoir où se trouvent des toilettes publiques dans un rayon de cinq kilomètres. Il s'agit d'une « requête de portée géographique ». Puis il cherche le vélo le plus proche. Mobike utilise MongoDB pour effectuer une telle « requête de tri de distance ».
Les données ne peuvent pas être placées sur une seule machine, un partitionnement est donc nécessaire pour les mettre sur plusieurs machines. Le partage est une fonctionnalité native de MongoDB depuis de nombreuses années et est efficacement intégré aux autres fonctionnalités de MongoDB.
Par exemple, une requête d'agrégation complexe dans un cluster fragmenté sera automatiquement assignée pour s'exécuter sur plusieurs nœuds en fonction de la Shard Key (clé de fragmentation), et les tâches informatiques seront transmises aux nœuds de données autant autant que possible. Enfin, regroupez les résultats de tous les nœuds sur un seul nœud. Le partage peut également migrer automatiquement les données entre les nœuds pour équilibrer leur volume de données. Dans le même temps, combiné à la technologie de réplication (jeu de réplicas) de MongoDB, la perte de données peut être efficacement évitée (lors des tests, il a été constaté que Mongo découvrirait automatiquement toutes les adresses de machine du jeu de réplicas. Lorsqu'un Mongo est arrêté, le serveur connecté ne fera pas de rapport d'erreur)
Distribution utilisant une structure de cluster fragmentée dans MongoDB :
Comme nous le savons tous, MongoDB occupe beaucoup de mémoire du serveur
MongoDB est légèrement moins sécurisé
Un fichier qui est trop libre et flexible Erreurs de données causées par le format de stockage (...)
La taille d'un seul document est limitée à 16 M
Pour les types de tableaux, les opérations de données ne sont pas assez riches
Après avoir dit tant de conneries, le plus important est quand choisissons-nous d'utiliser MongoDB
Système de journalisation, les informations de journal générées pendant le fonctionnement du système ont généralement de nombreux types, une grande portée et le contenu est relativement compliqué. Ces journaux désordonnés peuvent être collectés et gérés via MongoDB
Le stockage de localisation géographique MongoDB prend en charge la localisation géographique, l'index spatial bidimensionnel et peut stocker la longitude et la latitude, de sorte que deux points peuvent être rapidement. calculée. la distance entre eux et d'autres informations de localisation
L'échelle des données augmente rapidement (comme les informations d'attention fournies)
Besoin de garantir un environnement hautement disponible
Exigences de stockage de fichiers
D'autres scénarios, tels que le développement de jeux, les informations utilisateur, l'équipement, les points, etc. peuvent être stocké via MongoDB En plus des systèmes logistiques, des systèmes sociaux et même des systèmes Internet des objets
Cela dit, pourquoi mettons-nous MySQL. et MongoDB ensemble pour comparer et choisir ? C'est parce qu'il s'agit de différents types de bases de données Depuis le développement des bases de données jusqu'à aujourd'hui, elles sont grossièrement divisées en trois types
bases de données open source, distribuées et non relationnelles
Caractéristiques des bases de données non relationnelles :NewSQL est une classe de systèmes de gestion de bases de données relationnelles modernes qui cherchent à fournir les mêmes performances évolutives que les systèmes NoSQL pour le traitement des transactions en ligne ( OLTP) en lecture-écriture tout en conservant les garanties ACID d'un système de base de données traditionnel.
NewSql peut être considéré comme le produit de la combinaison du SGBDR traditionnel et de la technologie NoSql. Par conséquent, la technologie NewSql typique peut être. compris comme une distribution C'est une condition préalable de base pour qu'une base de données relationnelle prenne en charge les transactions distribuées. NoSQL et NewSQL ont de nombreux chevauchements dans leurs piles technologiques, mais il existe des différences évidentes quant à leur prise en charge des modèles relationnels et à leur capacité à prendre en charge les transactions complexes. Comme je n’y connais pas grand chose, je n’en dirai pas grand-chose ici.
Ici, je vais simplement présenter les types de bases de données. Une technologie de stockage qui appartient à NoSql, NewSql ou RDBMS ne peut pas être simplement classée. Après tout, la technologie s'améliore constamment. Par exemple, MySQL est désormais également compatible avec. Fonctionnalités de nosql :
Certaines personnes peuvent se demander pourquoi les transactions ne sont pas mentionnées lors de l'introduction des lacunes de MongoDB. C'est parce que dans la version MongoDB 4.0. à l'été 2018, MongoDB a introduit des fonctions de transaction et pris en charge les fonctionnalités ACID multi-documents, telles que l'utilisation de Mongo Shell pour les opérations de transaction
Données de tests de résistance spécifiques sera ajouté plus tard
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!