MySQL ist einfach zu installieren, schnell und verfügt über umfangreiche Funktionen. Darüber hinaus ist es ein Maßstab für die Open-Source-Bewegung und seine großartigen Erfolge zeigen uns, dass auf Open-Source-Code ein erfolgreiches Unternehmen aufgebaut werden kann. Allerdings hat jeder, der MySQL verwendet hat, schon einmal mit der Faust in Richtung des Monitors gewedelt. Aber man kann keine Technologie erfinden, die Tausende Zeilen Internetdaten pro Sekunde fehlerfrei speichern kann. Um Ihnen diesen Sommer Spannung zu verleihen, haben wir acht Gründe zusammengestellt, sich über relationale Open-Source-Datenbanken zu beschweren. Die unten aufgeführten Gründe sind nicht auf MySQL beschränkt, einige davon sind spezifisch für relationale Datenbanken. Wenn wir relationale Datenbanken und MySQL nicht in den Griff bekommen, werden wir für immer in den 90er Jahren stecken bleiben. Wir müssen sie abreißen und neu aufbauen. Oder wir greifen auf eine seit Kurzem beliebte Datenbank zurück, die es aber noch nicht lange genug gibt, um eine Reihe von Gründen wie die folgenden aufzulisten. 1. Tief verwurzelte Fehler Jedes große Softwarepaket hat Fehler. Wenn Sie jedoch ein wenig tiefer graben, werden Sie feststellen, dass MySQL-bezogene Fehler eine Welt für sich darstellen. Plötzlich müssen Sie aufpassen, weil NULL-Werte nicht auf die gleiche Weise angezeigt werden, Fremdschlüsseleinschränkungen nicht so funktionieren, wie Sie es erwarten, und sogar die automatische Inkrementierung von Primärschlüsseln nicht auf die gleiche Weise funktioniert. Es gibt viele kleine Probleme, die nicht immer behoben werden können. Deshalb führen manche Leute eine Liste. Glücklicherweise verfügt MySQL über ein sehr gutes Fehlerberichtssystem, das uns Dinge erfährt, die wir uns nicht vorstellen können, und uns zeigt, dass andere dasselbe durchmachen. 2. Inflexibilität relationaler Tabellen Relationale Tabellen haben eine Struktur, und Struktur ist gut – aber sie zwingt Programmierer dazu, Daten zu erfinden oder in Spalten mit definierten Schemata hineinzuzwängen. Einer der Gründe für die zunehmende Beliebtheit von NoSQL besteht darin, dass es Programmierern genügend Flexibilität bietet, um die Nutzung von Datenbanken zu beschleunigen. Wenn für eine Straßenadresse eine zusätzliche Zeile erforderlich ist, können Sie diese einfach in ein NoSQL-Dokument einfügen. Wenn Sie einen ganz neuen Datenblock hinzufügen möchten, unabhängig davon, was dieser enthält, kann das Dokumentmodell Ihre Daten unverändert akzeptieren, ohne dass Sie sie in das erforderliche Datenformat ändern müssen. Stellen Sie sich vor, Sie hätten eine Tabelle mit allen Postleitzahlen im Ganzzahlformat erstellt. Diese Tabelle ist sehr effizient und setzt die Regeln sehr gut durch. Plötzlich lud jemand eine neunstellige Postleitzahl mit Bindestrich hoch. Oder Sie erhalten möglicherweise einen Brief von einem Kunden aus Kanada mit einer Postleitzahl darauf. Zu diesem Zeitpunkt herrschte alles Chaos. Der Chef verlangte, dass die Website innerhalb weniger Stunden wieder im Normalbetrieb sei. Es bleibt jedoch keine Zeit, die Datenbank neu aufzubauen. Was kann ein Programmierer tun? Vielleicht ist es möglich, die kanadische Postleitzahl mithilfe eines Hacks vom numerischen Base64-Format in das Base10-Format zu ändern? Oder eine sekundäre Tabelle einrichten, die Escape-Kodierung verwendet, um echte Postleitzahlen oder etwas Ähnliches zu berücksichtigen? Wer weiß? Hacker gibt es überall und sie sind gefährlich. Aber Sie haben keine Zeit, es herauszufinden. Die Assoziationsregeln von MySQL sorgen dafür, dass jeder ehrlich und vorsichtig bleibt, können uns aber auch davor bewahren, anfällig für Angriffe und Täuschung zu sein. 3. JOIN-Gemeinschaftsabfrage Es war einmal eine große Neuerung in der Geschichte der Informatik, Daten in separaten Tabellen zu speichern. Der getrennte Tisch hat nicht nur einen einfachen Aufbau, sondern vereinfacht auch die Verwendung. Für die Abfrage muss jedoch eine Join-Anweisung verwendet werden. Die komplexen Abfragen, die SQL durch eine Reihe von Verknüpfungen erstellt, stürzen Entwickler in den Abgrund der Verwirrung und Verzweiflung. Und die Speicher-Engine muss die Join-Anweisung auch optimal effizient analysieren können. Entwickler müssen sich den Kopf zerbrechen, um Abfrageanweisungen zu schreiben, die dann von der Datenbank analysiert werden. Aus diesem Grund verzichten viele Entwickler, die sich auf die Ausführungsgeschwindigkeit konzentrieren, auf die Datenpartitionierung und verwenden stattdessen nicht standardmäßige Datentabellen. Unterscheiden Sie nicht zwischen Datenentitäten und speichern Sie alle Daten in einer großen Tabelle, um komplexe Abfragen zu vermeiden. Das geht wirklich schnell und dem Server geht nicht der Speicher aus. Speicherplatz ist heutzutage günstig. 8-TB-Festplatten sind bereits im Handel, größere folgen in Kürze. Wir müssen uns nicht mehr den Kopf zerbrechen, um Join zu verwenden. 4. Verzweigungsverwirrung Ja, ein solider, gut unterstützter Fork von MySQL kann Wettbewerb und Auswahl bringen, aber er kann auch Verwirrung und Chaos verursachen. Schlimmer noch, es gibt einen Fork von MySQL namens MariaDB, der von Monty Widenius gepflegt wird. Er half auch beim Schreiben von MySQL. Ist MariaDB also wirklich unabhängig und unserer Unterstützung würdig? Oder ist es MySQL? Sollten wir beim Kerncode bleiben, der von der Organisation betrieben wird, die die ursprüngliche MySQL-Datenbank erstellt hat? Oder sollten wir uns den vermeintlich intelligenteren und oft cooleren Verrätern anschließen? Und wie sollen wir Informationen zur Kompatibilität erhalten? Einerseits wird uns versichert, dass MariaDB und MySQL sehr ähnlich sind. Andererseits müssen wir glauben, dass ein Unterschied besteht – warum streiten sonst alle darüber? Vielleicht funktionieren sie in beiden Lagern hinsichtlich der Leistung und des Umfangs unserer Abfrage gleich? Aber vielleicht sind sie anders – oder werden in Zukunft anders sein. 5. Verwirrung bei der Speicher-Engine MySQL ist eigentlich keine einzelne Datenbank; es besteht aus mehreren Datenbanken, deren meisten Details durch eine einheitliche Oberfläche verborgen werden. Am Anfang gab es die MyISAM-Engine, die schnell, aber nicht ganz konsistent war. Das ist manchmal gut, wenn Sie Geschwindigkeit brauchen und inkonsistente Ergebnisse akzeptieren können. Als die Leute mehr brauchten, kam InnoDB mit vollständiger Transaktionsunterstützung auf den Markt. Aber das ist nicht genug. Heute stehen vielleicht 20 verschiedene Speicher-Engines zur Auswahl – das würde einen Datenbankadministrator in den Wahnsinn treiben. Sicher, manchmal ist es schön, zwischen Speicher-Engines wechseln zu können, ohne SQL neu schreiben zu müssen, aber das Wechseln führt immer zu Verwirrung. Soll ich MyISAM oder innoDB als Engine für diese Tabelle wählen? Oder entscheide ich mich für die Ausgabe der Daten im CSV-Format? 6. Gewinnmotivation Obwohl MySQL ein erfolgreiches Open-Source-Produkt ist, handelt es sich immer noch um ein Geschäft voller professioneller Entwickler, die dafür bezahlt werden, damit zu arbeiten. Während die meisten Benutzer mit Open-Source-Lizenzen weiterhin die bestmögliche Erfahrung machen, besteht kein Zweifel daran, dass das Unternehmen immer noch darum kämpft, genügend Geld zu verdienen, um über Wasser zu bleiben. Dies hat zu einer merkwürdigen Aufspaltung des kostenlosen Codes zwischen „Community Editionen“ und Vollprodukten geführt, die an Unternehmen verkauft werden. 7. Fehlende native JSON-Unterstützung Das Alter von MySQL erkennen Sie am besten, indem Sie es installieren und sich dann bewusst machen, dass Sie weitere Treiber hinzufügen müssen, um es nutzbar zu machen. MySQL kommuniziert normalerweise über Port 3306 und gibt Daten typischerweise in einem Format aus, das es selbst nicht verstehen kann. Wenn Ihr Code damit kommunizieren soll, müssen Sie eine weitere Codeebene hinzufügen, um die Sprache von MySQL in etwas Nützliches zu übersetzen. Für den Code dieser Schichten, der als Bibliotheken verteilt wird, ist häufig der Erwerb einer kommerziellen Lizenz erforderlich. Moderne Datenspeicherebenen kommunizieren häufig direkt in JSON. Obwohl MySQL und MariaDB mittlerweile in der Lage sind, den JSON-Teil von SQL zu analysieren, ist dies bei weitem nicht gut genug und native JSON-Schnittstellen werden bereits häufig in CouchDB, MongoDB oder den neuesten Tools verwendet. 8. Der Aufstieg von Closed Source und proprietären Modulen Habe ich erwähnt, dass MySQL Open Source ist? Es handelt sich, abgesehen von einigen neueren, nicht Open Source-Codes, um proprietäre Module, die um den „Open Source-Kern“ herum entwickelt wurden. Programmierer müssen essen, und Oracle muss mit seiner harten Arbeit Geld verdienen. Das ist eine der Realitäten des Geschäftslebens. Es ist nicht wie in den Krankenhäusern, wo die medizinische Versorgung mit MySQL kostenlos ist. Es ist nicht so, dass diese Bauern mithilfe von MySQL Lebensmittel verschenken. Es ist ein wenig unfair, an MySQL hohe Maßstäbe anzulegen, denn der Erfolg von Open Source kann eine Falle sein. Nur weil es anfangs kostenlos ist, heißt das nicht, dass es immer kostenlos bleiben wird. Wenn Unternehmen viele neue Funktionen wünschen, müssen sie auf die eine oder andere Weise dafür bezahlen. Manchmal ist es viel günstiger, Oracle zu bezahlen, als den Code selbst zu schreiben. Manchmal ist kommerzieller, geschlossener Quellcode sinnvoll. Die Fakten sprechen für sich. Zusammenfassen Oben sind 8 MySQL-Fallen, die ich mit Ihnen teile. Ich hoffe, sie sind hilfreich für Sie. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken! Das könnte Sie auch interessieren:
|
<<: Zusammenfassung der Anwendungsbereiche von Kubernetes
>>: 7 nützliche neue TypeScript-Funktionen
Inhaltsverzeichnis Cluster-Cluster Clusterdetails...
Suchen Sie die ID des laufenden Containers Docker...
Inhaltsverzeichnis 1. Strukturzeichenfolge 2. Tup...
Vorwort Ein Docker-Image besteht aus einer Docker...
In diesem Artikel wird der spezifische Code für J...
Vorwort Um zum Originalcode kompatibel zu sein, b...
Inhaltsverzeichnis Szenario Wirkung Code Zusammen...
Problem: Die Partition, in der MySQL Datendateien...
Inhaltsverzeichnis Sehen Sie sich dies an.$store....
Hintergrund Zu Beginn meines Japanisch-Lernens fi...
Inhaltsverzeichnis Projekteinführung: Projektverz...
Lassen Sie mich zunächst vorstellen, wie Sie PHP ...
sudo-Konfigurationsdatei Die Standardkonfiguratio...
pthread_create-Funktion Funktionseinführung pthre...
Inhaltsverzeichnis Problembeschreibung Methode 1 ...