Heim > Datenbank > MySQL-Tutorial > Hauptteil

Kann MySQL nur für kleine Projekte verwendet werden? Es ist Zeit, etwas Gerechtigkeit zu sagen!

步履不停
Freigeben: 2019-06-25 17:41:23
Original
1922 Leute haben es durchsucht

Kann MySQL nur für kleine Projekte verwendet werden? Es ist Zeit, etwas Gerechtigkeit zu sagen!

Als ich in der Schule war, hatten viele Leute Vorurteile gegenüber MySQL. Die Vorurteile konzentrierten sich hauptsächlich auf die folgenden Aspekte:

1. MySQL unterstützt keine Transaktionen (in Tatsächlich führt MyISAM eine Tabellensperre durch, aber die Effizienz ist relativ gering.

2. Die in MySQL gespeicherte Datenmenge ist für kleine Projekte, Oracle, DB2 usw. geeignet.

Nach so vielen Jahren basierte meine Entwicklung immer auf MySQL, daher denke ich, dass ich ein paar Worte der Gerechtigkeit sagen muss.

Um fair zu sein

Die erste Frage

Was das erste Problem der Nichtunterstützung von Transaktionen betrifft, gibt es dafür bestimmte historische Gründe. Von Beginn des MySQL-Designs an war die Speicher-Engine steckbar, sodass Unternehmen oder Einzelpersonen ihre eigenen Speicher-Engines entsprechend ihren eigenen Anforderungen definieren konnten (normale Unternehmen oder Einzelpersonen verfügen natürlich nicht über diese Funktion). Die am weitesten verbreitete von MySQL entwickelte Speicher-Engine ist MyISAM. MyISAM unterstützt Tabellensperren, jedoch keine Zeilensperren, sodass es bei der Verarbeitung hoher gleichzeitiger Schreibvorgänge weniger effizient ist. Darüber hinaus unterstützt MyISAM keine Fremdschlüssel (obwohl Fremdschlüssel jetzt verwendet werden). tatsächliche Projekte).

Aber dieses Problem ist nicht unlösbar. Dies muss über InnoDB gesagt werden, eine weitere berühmte Speicher-Engine in MySQL.

Die InnoDB-Speicher-Engine wurde von einem Unternehmen namens Innobase Oy in Helsinki, Finnland, entwickelt. Die InnoDB-Speicher-Engine hat eine noch längere Geschichte als MySQL.

Als InnoDB zum ersten Mal entwickelt wurde, wurde es als vollständige Datenbank entwickelt, sodass seine Funktionen sehr vollständig sind. Nach der Entwicklung wollte der Gründer die Datenbank verkaufen, es fand sich jedoch kein Käufer.

Später, nach der Einführung von MySQL 2.0, erregte diese steckbare Speicher-Engine die Aufmerksamkeit von Heikki Tuuri, dem Gründer von Innobase Oy. Nach der Kommunikation mit MySQL beschloss er, InnoDB als Speicher-Engine in MySQL einzuführen MySQL unterstützt InnoDB, eigentlich fördert es hauptsächlich sein eigenes MyISAM.

Aber InnoDB war so gut, dass es 2006 schließlich die Aufmerksamkeit des großen Teufels Oracle auf sich zog und InnoDB mit einer Handbewegung erwarb.

MySQL förderte hauptsächlich sein eigenes MyISAM, und sein Leben war sehr düster. Es wurde schließlich 2008 von Sun für 1 Milliarde US-Dollar übernommen. Diese Operation festigte Suns Position als Marktführer im Open-Source-Bereich, Sun jedoch Die Liquidität des Unternehmens war immer relativ schwach, und schließlich wurde Sun selbst 2009 von Oracle übernommen. Ich war damals noch in der Highschool, als ich im Restaurant die Mittagsnachrichten von CCTV lief, und ich habe immer noch einige Eindrücke davon.

Nach der Übernahme von Sun durch Oracle wurden InnoDB und MySQL zu Oracle-Produkten, und die Integration wurde sehr einfach. In späteren Versionen wurde InnoDB nach und nach zum Standardspeicher der MySQL-Engine. Im neuesten MySQL8 verwendet die Metadatentabelle auch InnoDB als Speicher-Engine.

InnoDB-Speicher-Engine verfügt hauptsächlich über die folgenden Funktionen:

1. Unterstützt Transaktionen

2. Unterstützt mehrere Versionen Lesen

4. Unterstützt Sperren auf Zeilenebene

5. Unterstützt das Caching, das sowohl Indizes als auch Daten zwischenspeichern kann

7. Die gesamte Tabelle und die Primärschlüssel werden im Cluster-Modus gespeichert, um einen ausgeglichenen Baum zu bilden

8. Das bedeutet natürlich nicht, dass InnoDB ist unbedingt gut In der Praxis Während der Entwicklung müssen Sie je nach Szenario noch entscheiden, ob Sie InnoDB oder MyISAM verwenden möchten.

Die erste Frage ist also selbstzerstörerisch.

Die zweite Frage

Die zweite Frage ist tatsächlich ein Fehler.

Wenn man MySQL mit Oracle vergleicht, wird es sich definitiv etwas schlechter anfühlen. Schließlich ist das eine kostenlos und das andere kostenpflichtig, und die kostenpflichtigen sind sehr teuer. Aber dieses Problem ist nicht unlösbar. Ich glaube, viele Freunde haben gehört, dass viele große inländische Hersteller MySQL zum Speichern von Daten verwenden. Große Hersteller nutzen MySQL, weil sie die Möglichkeit haben, ihre eigenen Speicher-Engines zu entwickeln. Kleine Hersteller verfügen im Allgemeinen nicht über diese Stärke und können keine eigenen Speicher-Engines entwickeln, aber Oracle kann es sich nicht leisten. Was sollen wir also tun?

Die in den letzten Jahren entstandene verteilte Datenbank-Middleware kann dieses Problem sehr gut lösen. Im Java-Bereich gibt es viele ähnliche Tools wie Sharding-JDBC, MyCat usw. Mit diesen Tools können Datenbankuntertabellen sowie die dynamische Erweiterung von Datentabellen, die Lese-/Schreibtrennung und verteilte Transaktionen gut realisiert werden Auflösung usw. Mit diesen Tools wurden die Anwendungsszenarien von MySQL erheblich verbessert.

Andererseits sind Microservices in den letzten Jahren populär geworden. Die Microservice-Architektur teilt ein großes Projekt in viele kleine Microservices auf. Dies entspricht eher den Merkmalen menschlicher Arbeitsteilung und Zusammenarbeit. In der Microservice-Architektur wird unser Bedarf an großen Tabellen und gemeinsamen Abfragen für mehrere Tabellen reduziert und MySQL wird nützlicher sein.

Damit kann auch das zweite Problem gelöst werden.

Soweit ich weiß, verwenden Internetunternehmen immer noch häufig MySQL, und traditionelle Softwareunternehmen bevorzugen möglicherweise Datenbanken wie Oracle.

Aber Cloud Computing ist auch eine Richtung in der Zukunft.

Weitere technische Artikel zum Thema MySQL finden Sie in der Spalte MySQL-Tutorial.

Das obige ist der detaillierte Inhalt vonKann MySQL nur für kleine Projekte verwendet werden? Es ist Zeit, etwas Gerechtigkeit zu sagen!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!