Eine kurze Diskussion der Datenbankkenntnisse ausgehend von MongoDB
Bei dem Inhalt dieses Artikels handelt es sich um eine kurze Diskussion des Datenbankwissens ausgehend von MongoDB. Ich hoffe, dass es für Freunde hilfreich ist.
Das heutige Thema ist, über Datenbanken von MongoDB zu sprechen. In täglichen Projekten verwenden wir im Allgemeinen MySQL als Datenbank, aber wenn es ein Problem gibt, hören wir oft so etwas wie „Wie wäre es, es durch zu ersetzen?“ „Probieren Sie MongoDB“ klingt, also lassen Sie uns Neulinge beiläufig über Datenbanken sprechen
Das Grundkonzept der Datenbank (Datenbank) Eine Datenbank ist ein Lager, das Daten gemäß einer bestimmten Datenstruktur organisiert, speichert und verwaltet- Die Programme, die wir schreiben, werden alle im Speicher ausgeführt. Sobald das Programm endet oder der Computer ausfällt, gehen alle Daten im Programm verloren, sodass wir einige Programmdaten auf der Tastatur speichern müssen.
- Datenbank ist eine häufige Wahl für die Persistenz großer Datenmengen, 1. Datei 2. Datenbank
- Warum Datenbank zum Speichern von Daten verwenden
- Die Datenbank kann verschiedene Schnittstellen bereitstellen, um die Datenverarbeitung (Hinzufügen, Löschen, Ändern und Abfragen) schnell und bequem zu gestalten
- Verschiedene Sprachen (PHP, JSP, .net..) bieten vollständige Schnittstellen
- Datenbankpopularität (Quelle: https://db- engine.com /en/ranking)
Aus den statistischen Daten geht hervor, dass das beliebteste DBMS „relational“ ist und ganz oben liegt fünf Mit vier Plätzen wurden die Daten auf die Top Ten erweitert, und relationale Datenbanken belegen ebenfalls sieben Plätze. Warum bevorzugen die meisten Programmierer die Verwendung von MySQL?
- Breites Einsatzspektrum: Kann auf den meisten Plattformen wie Linux, Windows, Ubuntu, Mac OS 🎜>
Geeignet für PHP (PHP ist das beste der Welt) und kann auch mit anderen Programmiersprachen wie JAVA, PERL, C, C++ usw. verwendet werden.
Geeignet für kleine und große Anwendungen
Warum ist MongoDB immer noch in den Top 5, wenn relationale Datenbanken so gut sind? die Mängel von
relationalen Datenbanken und MySQL Was ist das? - Skalierbarkeit: Das Hinzufügen weiterer Daten zu einem bestimmten Datensatz kann eine Skalierung auf mehrere Tabellen, Spalten und Zeilen erfordern, und da Daten Zeile für Zeile gespeichert werden, auch wenn nur für eine der Spalten Im Betrieb liest die relationale Datenbank auch die gesamte Datenzeile vom Speichergerät in den Speicher, was zu höheren I/O-Vorgängen führt
- Ein Fehler, der sich aus dem ersten ergibt, besteht darin, dass dies nicht möglich ist gespeichert werden Datenstruktur
- Geschwindigkeit: Aufgrund des Problems der Datenstruktur dauert die Analyse der Daten eine gewisse Zeit. Außerdem können nur Teilstring-Matching-Abfragen durchgeführt werden Die Daten in der Tabelle werden allmählich größer, und der Abgleich ähnlicher Abfragen erfolgt sehr langsam, selbst wenn ein Index vorhanden ist.
Bevor Sie ihn verwenden, müssen Sie ein zu definierendes Schema schreiben Die Tabelle und das Tabellenstrukturschema lassen sich bei Bedarf nur schwer erweitern. Das Ändern der Tabellenstruktur erfordert die Ausführung von DDL (Datendefinitionssprache) und die Anweisungsänderung. Während der Änderung wird die Tabelle gesperrt 🎜>Was macht MongoDB so attraktiv?
Flexibilität: Die Dokumentstruktur entspricht besser der Art und Weise, wie Entwickler in ihren jeweiligen Programmiersprachen programmieren, die klar und in Schlüssel-Wert-Paaren strukturiert sind, sodass sie jederzeit problemlos hinzugefügt werden können Zeit und Bearbeitung von Daten/Dokumenten
Unterstützt verschiedene Abfragen: Felder, Ausdrücke, Bereichsabfragen, JavaScript-Funktionen usw.
Schnellere Bearbeitungszeit: Da verwandte Daten, die in mehreren Tabellen in einer MySQL-Datenbank gespeichert sind, im selben Dokument in MongoDB gespeichert werden
Es gibt kein striktes Schema: Das Dokument kann erstellt werden, bevor die Dokumentstruktur definiert ist
Die Funktionen von MongoDB machen es besser für die Verarbeitung großer Datenmengen geeignet
- Lassen Sie uns die beiden zuerst vergleichen und dann im Detail erklären
-
MySQL MongoDB 版本 1995- 2018(mysql 8.0) 2009 结构 关系型 非关系型 灵活性 弱,需要在使用之前先定义数据库模式 与MySQL相比具有相当大的灵活性 - 定义不需要的模式 可扩展性 可以,但是比较困难,MySQL数据库可以垂直扩展,可以向单个服务器添加更多资源 比MySQL更具可扩展性。MongoDB可水平扩展,可以添加更多服务器来扩展您的数据库 需要DB管理员 是 否 - 开发人员和管理员都可以使用 适用场景 会计师事务所和银行,以及需要具有清晰架构的结构化数据的其他公司。非常适合具有或多或少固定要求的企业(twitter例外) 具有实时数据,物联网,内容管理,移动应用,社交网络,面向大数据/网络分析的系统以及不需要具有清晰架构或其架构的结构化数据的业务的理想选择不断变化 Flexibilität
Lassen Sie uns zunächst über Flexibilität sprechen. In einem Einkaufszentrum gibt es beispielsweise viele Produkte, und diese Produkte haben ihre eigenen einzigartigen Eigenschaften, wie z. B. die Bildschirmgröße und die Bildschirmauflösung , und Klimaanlagen haben Attribute wie Kühltyp und Außengerätegeräusch. Es ist sehr schwierig, sie in die Produkttabelle einzufügen, was für Programmierer zusätzliche Arbeit beim Entwerfen von Datentabellen bedeutet, und MongoDB verfügt nicht über Schema (Schema, Datenmodell). . Es wird sehr einfach erscheinen.
Die Flexibilität von MongoDB spiegelt sich auch in unstrukturierten und halbstrukturierten Daten wider. MongoDB bietet Volltextindizierung und unterstützt auch Geolocation-Abfragen und -Indizierung. Beispielsweise möchte ein Benutzer wissen, wo es im Umkreis von fünf Kilometern öffentliche Toiletten gibt. Dabei handelt es sich um eine „Geografische Reichweitenabfrage“. Dann sucht er nach dem nächsten Fahrrad. Mobike verwendet MongoDB, um eine solche „Entfernungssortierungsabfrage“ durchzuführen.
Skalierbarkeit
Die Daten können nicht auf einer Maschine platziert werden, daher ist Sharding erforderlich, um sie auf mehreren Maschinen zu platzieren. Sharding ist seit vielen Jahren eine native Funktion von MongoDB und ist effizient in andere MongoDB-Funktionen integriert.
Zum Beispiel wird einer komplexen Aggregationsabfrage in einem Shard-Cluster automatisch die Ausführung auf mehreren Knoten basierend auf dem Shard-Schlüssel (Shard-Schlüssel) zugewiesen, und die Rechenaufgaben werden ebenfalls auf die Datenknoten verlagert Aggregieren Sie schließlich die Ergebnisse aller Knoten auf einem Knoten. Sharding kann auch automatisch Daten zwischen Knoten migrieren, um deren Datenvolumen auszugleichen. Gleichzeitig kann in Kombination mit der Replikationstechnologie (Replikasatz) von MongoDB Datenverlust effektiv vermieden werden (während des Tests wurde festgestellt, dass Mongo automatisch alle Maschinenadressen des Replikatsatzes erkennt. Wenn ein Mongo gestoppt wird, wird der verbundene Server wird kein Fehler melden)
Verteilung mithilfe einer Sharded-Cluster-Struktur in MongoDB:
Nachteile von MongoDB
-
Wie wir alle wissen, nimmt MongoDB viel Serverspeicher ein
MongoDB ist etwas weniger sicher
Eine Datei, die ist zu frei und flexibel. Datenfehler durch Speicherformat (...)
Die Größe eines einzelnen Dokuments ist auf 16 M begrenzt
Für Array-Typen sind Datenoperationen nicht umfangreich genug
Wann sollten wir MongoDB wählen?
Nachdem wir so viel Mist gesagt haben, ist das Wichtigste, wann wir uns für die Verwendung von MongoDB entscheiden
Protokollsystem: Die während des Betriebs des Systems generierten Protokollinformationen sind im Allgemeinen vielfältig, haben einen großen Umfang und der Inhalt ist chaotisch. Diese unordentlichen Protokolle können über MongoDB gesammelt und verwaltet werden.
Geografische Standortspeicherung MongoDB unterstützt geografische Standorte und zweidimensionale räumliche Indizes und kann Längen- und Breitengrade speichern, sodass zwei Punkte schnell erfasst werden können berechnet. Entfernung untereinander und andere Standortinformationen
Der Datenumfang wächst schnell (z. B. die bereitgestellten Aufmerksamkeitsinformationen)
Muss Stellen Sie eine hochverfügbare Umgebung sicher
Anforderungen an die Dateispeicherung
Andere Szenarien wie Spieleentwicklung, Benutzerinformationen, Ausrüstung, Punkte usw. können Darüber hinaus können Logistiksysteme, soziale Systeme und sogar Internet-of-Things-Systeme gespeichert werden und MongoDB zusammen vergleichen und auswählen? Das liegt daran, dass es sich um verschiedene Arten von Datenbanken handelt. Von der Entwicklung der Datenbanken bis zur Gegenwart werden sie grob in drei Typen unterteilt:
RDBMS (relationale Datenbank)
Das erste, was wir erwähnen müssen, ist die relationale Datenbank, zu der die MySQL-Datenbank gehört.
Eigenschaften relationaler Datenbanken:
Zum Beispiel MySql, SQL Server Oracle usw.
- Funktionen werden dargestellt durch Tabellen Stellen Sie eine Verbindung her
- Verwenden Sie grundsätzlich die SQL-Sprache, um die Datenbank zu verwalten
- Nosql (nicht relationale Datenbank)
NoSql, Außerdem handelt es sich um den Datenbanktyp von MongoDB, der aus einem Meetup in San Francisco im Jahr 2009 hervorgegangen ist, bei dem eine Beschreibung der NoSql-Technologie erschien:
Open Source, verteilte, nicht relationale Datenbanken
Funktionen nicht relationaler Datenbanken: Es gibt kein Konzept von Zeilen und Spalten und die JSON-Klasse wird zum Speichern von Daten verwendet
- Eine Sammlung entspricht „Tabelle“, ein Dokument entspricht „Zeile“
- Standardisierung und Nichtstandardisierung Reibung.
- Standardisierung begrenzt die Innovation, nicht standardmäßige Wörter können nicht vereinheitlicht werden
- NoSql wurde als nicht-relational interpretiert, als es zum ersten Mal vorgeschlagen wurde, und zwar dort ist auch No-SQL-Mittel, aber mit der rasanten Entwicklung in den letzten Jahren wurde SQL nach und nach in einem breiteren Spektrum von Bereichen angewendet. Daher sind SQL-Funktionen auch in der NoSql-Technologie eingeführt worden System, wodurch sich das Konzept von Not-Only-SQL entwickelte
Die meisten NoSql-Technologien haben die Unterstützung für ACID-Semantik und komplexe relationale Abfragen geschwächt, einfachere oder professionellere Datenmodelle eingeführt und Lese- und Schreibpfade optimiert Kann gegen höhere Lese- und Schreibleistung ausgetauscht werden
NewSql
Laut Definition im Wiki
NewSQL ist eine Klasse moderner relationaler Datenbankverwaltungssysteme, die darauf abzielen, die gleiche skalierbare Leistung von NoSQL-Systemen für die Online-Transaktionsverarbeitung bereitzustellen ( OLTP) Lese-/Schreib-Workloads unter Beibehaltung der ACID-Garantien eines herkömmlichen Datenbanksystems.
NewSql kann als Produkt der Kombination von traditionellem RDBMS und NoSql-Technologie bezeichnet werden verstanden als verteilt Es ist eine Grundvoraussetzung dafür, dass eine relationale Datenbank verteilte Transaktionen unterstützt. NoSQL und NewSQL weisen viele Überschneidungen in ihren Technologie-Stacks auf, es gibt jedoch offensichtliche Unterschiede darin, ob sie relationale Modelle unterstützen und wie gut sie komplexe Transaktionen unterstützen. Da ich nicht viel darüber weiß, werde ich hier nicht viel sagen.
Hier werde ich einfach die Arten von Datenbanken vorstellen, die zu NoSql, NewSql oder RDBMS gehören. Schließlich verbessert sich die Technologie jetzt auch ständig nosql-Funktionen:
Manche Leute fragen sich vielleicht, warum Transaktionen bei der Einführung der Mängel von MongoDB nicht erwähnt werden. Dies liegt daran, dass in der MongoDB 4.0-Version Im Sommer 2018 führte MongoDB Transaktionsfunktionen ein und unterstützte ACID-Funktionen für mehrere Dokumente, z. B. die Verwendung der Mongo-Shell für Transaktionsvorgänge
Spezifische Stresstestdaten wird später hinzugefügt
-
Das obige ist der detaillierte Inhalt vonEine kurze Diskussion der Datenbankkenntnisse ausgehend von MongoDB. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



In der MySQL -Datenbank wird die Beziehung zwischen dem Benutzer und der Datenbank durch Berechtigungen und Tabellen definiert. Der Benutzer verfügt über einen Benutzernamen und ein Passwort, um auf die Datenbank zuzugreifen. Die Berechtigungen werden über den Zuschussbefehl erteilt, während die Tabelle durch den Befehl create table erstellt wird. Um eine Beziehung zwischen einem Benutzer und einer Datenbank herzustellen, müssen Sie eine Datenbank erstellen, einen Benutzer erstellen und dann Berechtigungen erfüllen.

MySQL ist für Anfänger geeignet, da es einfach zu installieren, leistungsfähig und einfach zu verwalten ist. 1. Einfache Installation und Konfiguration, geeignet für eine Vielzahl von Betriebssystemen. 2. Unterstützung grundlegender Vorgänge wie Erstellen von Datenbanken und Tabellen, Einfügen, Abfragen, Aktualisieren und Löschen von Daten. 3. Bereitstellung fortgeschrittener Funktionen wie Join Operations und Unterabfragen. 4. Die Leistung kann durch Indexierung, Abfrageoptimierung und Tabellenpartitionierung verbessert werden. 5. Backup-, Wiederherstellungs- und Sicherheitsmaßnahmen unterstützen, um die Datensicherheit und -konsistenz zu gewährleisten.

Vereinfachung der Datenintegration: AmazonRDSMYSQL und Redshifts Null ETL-Integration Die effiziente Datenintegration steht im Mittelpunkt einer datengesteuerten Organisation. Herkömmliche ETL-Prozesse (Extrakt, Konvertierung, Last) sind komplex und zeitaufwändig, insbesondere bei der Integration von Datenbanken (wie AmazonRDSMysQL) in Data Warehouses (wie Rotverschiebung). AWS bietet jedoch keine ETL-Integrationslösungen, die diese Situation vollständig verändert haben und eine vereinfachte Lösung für die Datenmigration von RDSMysQL zu Rotverschiebung bietet. Dieser Artikel wird in die Integration von RDSMYSQL Null ETL mit RedShift eintauchen und erklärt, wie es funktioniert und welche Vorteile es Dateningenieuren und Entwicklern bringt.

Ausfüllen des MySQL -Benutzernamens und des Kennworts: 1. Bestimmen Sie den Benutzernamen und das Passwort; 2. Verbinden Sie eine Verbindung zur Datenbank; 3. Verwenden Sie den Benutzernamen und das Passwort, um Abfragen und Befehle auszuführen.

1. Verwenden Sie den richtigen Index, um das Abrufen von Daten zu beschleunigen, indem die Menge der skanierten Datenmenge ausgewählt wird. Wenn Sie mehrmals eine Spalte einer Tabelle nachschlagen, erstellen Sie einen Index für diese Spalte. Wenn Sie oder Ihre App Daten aus mehreren Spalten gemäß den Kriterien benötigen, erstellen Sie einen zusammengesetzten Index 2. Vermeiden Sie aus. Auswählen * Nur die erforderlichen Spalten. Wenn Sie alle unerwünschten Spalten auswählen, konsumiert dies nur mehr Serverspeicher und veranlasst den Server bei hoher Last oder Frequenzzeiten, beispielsweise die Auswahl Ihrer Tabelle, wie beispielsweise die Spalten wie innovata und updated_at und Zeitsteuer und dann zu entfernen.

Navicat selbst speichert das Datenbankkennwort nicht und kann das verschlüsselte Passwort nur abrufen. Lösung: 1. Überprüfen Sie den Passwort -Manager. 2. Überprüfen Sie Navicats "Messnot Password" -Funktion; 3.. Setzen Sie das Datenbankkennwort zurück; 4. Kontaktieren Sie den Datenbankadministrator.

SQllimit -Klausel: Steuern Sie die Anzahl der Zeilen in Abfrageergebnissen. Die Grenzklausel in SQL wird verwendet, um die Anzahl der von der Abfrage zurückgegebenen Zeilen zu begrenzen. Dies ist sehr nützlich, wenn große Datensätze, paginierte Anzeigen und Testdaten verarbeitet werden und die Abfrageeffizienz effektiv verbessern können. Grundlegende Syntax der Syntax: SelectColumn1, Spalte2, ... Fromtable_Namelimitnumber_of_rows; number_of_rows: Geben Sie die Anzahl der zurückgegebenen Zeilen an. Syntax mit Offset: SelectColumn1, Spalte2, ... Fromtable_NamelimitOffset, Number_of_rows; Offset: Skip überspringen

Zeigen Sie die MySQL -Datenbank mit dem folgenden Befehl an: Verbindung zum Server: MySQL -U -Benutzername -P -Kennwort ausführen STEILE -Datenbanken; Befehl zum Abrufen aller vorhandenen Datenbanken auswählen Datenbank: Verwenden Sie den Datenbanknamen. Tabelle Ansicht: Tabellen anzeigen; Tabellenstruktur anzeigen: Beschreiben Sie den Tabellennamen; Daten anzeigen: Wählen Sie * aus Tabellenname;
