Vorwort:Bei Vorstellungsgesprächen für verschiedene technische Positionen werden anscheinend häufig Fragen zu MySQL gestellt. Unabhängig davon, ob Sie sich für eine Entwicklungs- oder Betriebsposition bewerben, werden Ihnen immer einige Datenbankfragen gestellt. Freunde schicken mir oft private Nachrichten und fragen, wie ich mit MySQL-Interviewfragen umgehen soll. Tatsächlich ähneln sich viele Fragen im Vorstellungsgespräch, daher ist eine frühzeitige Vorbereitung notwendig. In diesem Artikel werden einige häufige Fragen in Vorstellungsgesprächen kurz behandelt. Lernen wir sie gemeinsam. 1. Was ist eine relationale Datenbank? Sprechen Sie über Ihr Verständnis von MySQL.Dies ist eine grundlegende Frage, die das Verständnis des Interviewpartners für Datenbanken testet. Im Allgemeinen können Sie Ihr Verständnis kurz und strukturiert darlegen. Zum Beispiel: Eine relationale Datenbank ist eine Datenbank, die zur Organisation von Daten ein relationales Modell verwendet und Daten in Form von Zeilen und Spalten speichert. Das größte Merkmal relationaler Datenbanken ist, dass sie Transaktionen unterstützen. Zu den gängigen relationalen Datenbanken gehören MySQL, Oracle, SQLServer usw. MySQL ist die beliebteste Open-Source-Datenbank. Aufgrund seiner geringen Größe, hohen Geschwindigkeit, niedrigen Gesamtbetriebskosten und insbesondere seines Open-Source-Charakters haben viele Unternehmen die MySQL-Datenbank übernommen, um Kosten zu senken. Derzeit wird es häufig auf kleinen und mittleren Websites im Internet verwendet, insbesondere im OLTP-Bereich. 2. Was sind die gängigen Speicher-Engines für MySQL und was sind ihre Unterschiede?Diese Frage wird auch häufig gestellt und ähnelt der Frage „Was ist der Unterschied zwischen InnoDB- und MyISAM-Engines?“ Mehrere gängige Speicher-Engines:
Einige Unterschiede zwischen den InnoDB- und MyISAM-Engines:
3. Beschreiben Sie die MySQL-Infrastruktur.Diese Frage testet das Verständnis des Befragten hinsichtlich der MySQL-Architektur und ähnelt der Frage „Ausführungsfluss einer Select-Anweisung“. Die logische Architektur von MySQL ist hauptsächlich in drei Schichten unterteilt:
Der Ausführungsfluss einer Select-Anweisung:
4. Sprechen Sie über mehrere häufig verwendete Feldtypen.Diese Frage testet das Verständnis des Befragten für MySQL-Feldtypen und kann zu vielen kleinen Fragen führen, beispielsweise zum Unterschied zwischen char und varchar. Häufig verwendete Feldtypklassifizierung: Numerischer Typ: Zeichenfolgentyp: Datums- und Uhrzeittypen: Das M in int(M) steht für die maximale Anzeigebreite. Unsere erste Reaktion auf „maximale Anzeigebreite“ ist die maximale Breite des Wertes, den das Feld speichern kann. Wir könnten denken, dass wir, da wir int(1) erstellt haben, die Daten 10 nicht speichern können. Tatsächlich ist das nicht der Fall. int(5) und int(10) haben den gleichen Speicherbereich. Der CHAR-Typ hat eine feste Länge und MySQL weist basierend auf der definierten Zeichenfolgenlänge immer genügend Speicherplatz zu. Beim Speichern von CHAR-Werten werden diese rechts mit Leerzeichen bis zur angegebenen Länge aufgefüllt und beim Abrufen von CHAR-Werten werden nachstehende Leerzeichen entfernt. Der Typ VARCHAR wird zum Speichern von Zeichenfolgen variabler Länge verwendet. Wenn beim Speichern die Anzahl der Zeichen die definierte Anzahl von Ziffern nicht erreicht, werden am Ende keine Leerzeichen hinzugefügt. Das M in char(M) und varchar(M) stellt die maximale Anzahl der Zeichen dar, die gespeichert werden können. Ein einzelner Buchstabe, eine Zahl, ein chinesisches Schriftzeichen usw. nimmt ein Zeichen ein. 5. Sprechen Sie über die Rolle, Struktur und Verwendungsspezifikationen von Indizes.Zur Indizierung gibt es so viele Fragen, dass zur klaren Erklärung möglicherweise mehrere Artikel erforderlich sind. Teilen Sie einfach die Antworten auf diese Fragen mit: Der Zweck der Indizierung besteht darin, die Abfrageeffizienz zu verbessern. Es ist vergleichbar mit dem Verzeichnis in einem Wörterbuch. Bei der Suche nach Wörterbuchinhalten kann man anhand des Verzeichnisses den Speicherort der Daten ermitteln und diese dann direkt abrufen. Ein Index ist ein Tabellenverzeichnis. Bevor Sie nach Inhalten suchen, können Sie zunächst im Verzeichnis nach dem Indexspeicherort suchen, um die Abfragedaten schnell zu finden. Unter der InnoDB-Engine wird hauptsächlich der B+Tree-Index verwendet. Jeder Index ist eigentlich ein B+-Baum. Der B+-Baum ist ein ausgeglichener Suchbaum (kein Binärbaum), der für Festplatten und andere Speicherhilfsgeräte entwickelt wurde. Im B+-Baum befinden sich alle Daten in den Blattknoten, und jeder Blattknoten hat einen Zeiger auf den nächsten Knoten, wodurch eine geordnete verknüpfte Liste entsteht. Aus physischer Speicherperspektive können InnoDB-Indizes in Cluster-Indizes und Sekundär-Indizes bzw. Hilfsindizes unterteilt werden. Die Blattknoten des Clusterindex speichern die gesamte Datenzeile. Wenn eine Abfrage den Clusterindex verwendet, müssen Sie nur einen B+-Baum des Clusterindexes scannen, um die erforderlichen Datensätze zu erhalten. Wenn Sie den vollständigen Datensatz über den Sekundärindex finden möchten, müssen Sie zur Tabelle zurückkehren, d. h. den Primärschlüsselwert über den Sekundärindex finden und dann den vollständigen Datensatz im Clusterindex finden. Der offensichtliche Vorteil von Indizes besteht darin, dass sie Abfragen beschleunigen können. Das Erstellen von Indizes ist jedoch auch mit Kosten verbunden. Erstens muss bei jeder Indexerstellung ein B+-Baum dafür erstellt werden, was zusätzlichen Speicherplatz beansprucht. Zweitens muss der Index auch dynamisch verwaltet werden, wenn Daten in der Tabelle hinzugefügt, gelöscht oder geändert werden, was die Geschwindigkeit der Datenverwaltung verringert. Daher gibt es Grundsätze für die Erstellung und Verwendung von Indizes. Im Allgemeinen werden Indizes nur für Spalten erstellt, die zum Suchen, Sortieren, Gruppieren und Verknüpfen verwendet werden. Für Spalten mit geringer Selektivität sollten möglichst keine Indizes erstellt werden. 6. Sprechen Sie über die Eigenschaften und Isolationsebenen von MySQL-Transaktionen.Auch Fragen zu MySQL-Transaktionen werden häufig gestellt und einige Prinzipien müssen noch eingehend studiert werden. ACID hat vier Eigenschaften:
Transaktionsisolationsebene:
Durch gleichzeitige Transaktionen verursachte Probleme:
Oben finden Sie ausführliche Antworten auf mehrere häufig gestellte MySQL-Interviewfragen. Weitere Informationen zu häufig gestellten MySQL-Interviewfragen finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
>>: Lernprogramm für HTML-Webseitenlisten-Tags
In diesem Artikel wird der spezifische Code von j...
Vorwort Wenn wir von Linux-Systemen sprechen, mei...
Mehrere gängige Paging-Methoden: 1. Rolltreppenme...
Inhaltsverzeichnis Betriebswirtschaftlicher Hinte...
Inhaltsverzeichnis 1. Datenbankmodul 1.1 Datenban...
Wenn hier ein <input type="image">...
1. Es gibt derzeit viele Tools zur Python-Version...
Vorwort In vielen MySQL-Test-Szenarien müssen ein...
Inhaltsverzeichnis 1 Testumgebung 1.1 Server-Hard...
Inhaltsverzeichnis Erster Blick-Index Das Konzept...
Inhaltsverzeichnis 1 Was ist Funktions-Currying? ...
In diesem Artikel wird der spezifische Code von V...
1. Laden Sie zunächst die entsprechende Datenbank...
Vorwort: Docker ist eine Open-Source-Anwendungsco...
Als grundlegendes Element einer Webseite sind Bil...