Maison  >  Article  >  base de données  >  Une brève discussion sur les connaissances en matière de bases de données en commençant par MongoDB

Une brève discussion sur les connaissances en matière de bases de données en commençant par MongoDB

不言
不言avant
2019-01-07 10:14:053594parcourir

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

Qu'est-ce qu'une base 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

Le concept de base de base de données (Database)

  • 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

Pourquoi utiliser une base de données pour stocker des 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)

Une brève discussion sur les connaissances en matière de bases de données en commençant par MongoDB

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.

Pourquoi la plupart des programmeurs préfèrent-ils utiliser MySQL ?

  • 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.
  • Convient aux applications à petite et à grande échelle
  • Alors pourquoi MongoDB est-il toujours inclus dans le top cinq si les bases de données relationnelles sont si bonnes ? les défauts des
  • bases de données relationnelles et MySQL Qu'est-ce que c'est ?

  • Évolutivité : l'ajout de données supplémentaires à un enregistrement spécifique peut impliquer une mise à l'échelle sur plusieurs tables, colonnes et lignes, et parce que les données sont stockées ligne par ligne, même si ce n'est que pour l'une des colonnes Fonctionnement, la base de données relationnelle lira également la ligne entière de données du périphérique de stockage dans la mémoire, ce qui entraînera des E/S plus élevées

Un défaut découlant du premier est qu'il ne peut pas être stocké Structure des données

Vitesse : En raison du problème de structure des données, l'analyse des données prend un certain temps. De plus, seules les requêtes de correspondance de sous-chaînes peuvent être effectuées. les données du tableau deviennent progressivement plus grandes, , la correspondance des requêtes similaires sera très lente, même s'il existe un index
  • Avant de l'utiliser, vous devez écrire un schéma pour définir la table, et le schéma de structure de la table n'est pas pratique à développer si nécessaire. La modification de la structure de la table nécessite l'exécution de DDL (langage de définition de données) et la modification de l'instruction. Lors de la modification, la table sera verrouillée
  • <.>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.

Délai d'exécution plus rapide : Parce que les données associées stockées dans plusieurs tables d'une base de données MySQL sont stockées dans le même document dans MongoDB

  • 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

  • Comparons d'abord les deux, puis expliquons en détail

  • 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 ».

    Évolutivité

    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 :

    Une brève discussion sur les connaissances en matière de bases de données en commençant par MongoDB

    Inconvénients de 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

    Quand choisir MongoDB

    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

    Types de bases de données

    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

    SGBDR (base de données relationnelle)

    La première chose à mentionner doit être celle que nous connaissons le mieux. La base de données relationnelle à laquelle appartient la base de données mysql.

    Caractéristiques des bases de données relationnelles :

    • Par exemple, MySql, serveur SQL Oracle, etc.

    • Les fonctionnalités sont représentées à travers tables Établir une association

    • Utiliser essentiellement le langage SQL pour gérer la base de données

    Nosql (base de données non relationnelle)

    NoSql, Il s'agit également du type de base de données MongoDB, issu d'un Meetup tenu à San Francisco en 2009, où est apparue une description de la technologie NoSql :

    bases de données open source, distribuées et non relationnelles

    Caractéristiques des bases de données non relationnelles :

    • Il n'y a pas de notion de lignes et de colonnes et la classe json est utilisée pour stocker des données

    • Une collection équivaut à "Tableau", un document équivaut à "ligne"

    • friction de standardisation et de non-standardisation.

    • La standardisation limite l'innovation, les mots non standard ne peuvent pas être unifiés

    NoSql a été interprété comme non relationnel lors de sa première proposition, et là est également un moyen No-sql, mais avec le développement rapide de ces dernières années, SQL a été progressivement appliqué dans un plus large éventail de domaines. Par conséquent, SQL n'est plus une fonctionnalité exclusive du SGBDR. Les capacités SQL ont également été introduites dans la technologie NoSql. système, évoluant ainsi Le concept de Not-Only-SQL est apparu

    La plupart des technologies NoSql ont affaibli la prise en charge de la sémantique ACID et des requêtes relationnelles complexes, adopté des modèles de données plus simples ou plus professionnels et optimisé les chemins de lecture et d'écriture, ainsi Peut être échangé contre des performances de lecture et d'écriture plus élevées

    NewSql

    Selon la définition dans le wiki

    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 :

    Une brève discussion sur les connaissances en matière de bases de données en commençant par MongoDB

    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

    Une brève discussion sur les connaissances en matière de bases de données en commençant par MongoDB

    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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer
Article précédent:Que signifie MariaDB ?Article suivant:Que signifie MariaDB ?