Heim  >  Artikel  >  Datenbank  >  In den MySQL-Studiennotizen (4) geht es um Datenbankindizes

In den MySQL-Studiennotizen (4) geht es um Datenbankindizes

黄舟
黄舟Original
2016-12-21 16:43:50994Durchsuche

Wenig Stimmung (Sie können direkt zur Trennlinie springen)

Ich bin heute besser gelaunt. Einige starke schlechte Emotionen, die nicht gelöst werden konnten, verschwanden nach und nach, nachdem nachts ein komplexes logisches Problem gelöst wurde.

Als ich heute Mittag zum Essen ging, sagte Bruder Kun beiläufig: „Nach so vielen Jahren wurde mir endlich eine Wahrheit klar. Menschen sollten nicht so hart arbeiten, wenn sie jung sind, weil sie keine Zeit haben, etwas anderes zu tun.“ Dinge‘

Als ich nach anderen Dingen fragte, warf Bruder Kun einen Blick auf mich und fuhr fort, beiläufig zu sagen, dass er so beschäftigt sei, dass er keine Zeit habe, sich zu verlieben.

Ich denke, es ist in Ordnung, nicht so hart zu arbeiten? Die Immobilienpreise steigen jedes Jahr und die Lebenshaltungskosten steigen von Tag zu Tag. Wenn Sie nicht hart daran arbeiten, Ihren eigenen Wert zu schaffen, übersteigt das Geld, das Sie verdienen, die Wirtschaftswachstumsrate. Dann können wir nur weiterhin Verlierer am unteren Ende der Gesellschaft sein und in den guten Tagen der Jugend weiterhin unter Schmerzen leben.

Nur ​​wenn man hart arbeitet, kann man sich im Wettbewerb mit anderen einen kleinen Vorteil verschaffen.

Es ist sehr schmerzhaft, so hart zu arbeiten, und das Leben ist sehr eintönig. Welches Mädchen würde so ein Leben mögen?

Ich glaube, dass der Rückgang meiner emotionalen Intelligenz und meiner zwischenmenschlichen Fähigkeiten in den letzten sechs Monaten damit zusammenhängt, dass ich meinen ganzen Körper und Geist in die Programmierung gesteckt habe.

Ursprünglich wollte ich diese Worte verwenden, um mit Bruder Kun zu sprechen, aber die Worte blieben mir schließlich im Hals stecken und ich sagte sie nicht.

Jeder hat seinen eigenen Weg, ob er einsam oder lebhaft ist, es ist seine Entscheidung.

Wenn man sich für einen Weg entscheidet, muss man auf viele Dinge verzichten.

Ich bin bereit, es zu bekommen, also bin ich noch eher bereit, es zu verlieren.

Nach der Schimpftirade beginnt der Text:

Wie lautet der Index? Studierende, die sich leicht von Fachbegriffen täuschen lassen, sollten die Initiative ergreifen und die beliebte Erklärung zu Baidu lesen: ein Tool zum Abrufen von Büchern und Materialien. Klassifizieren und extrahieren Sie den Inhalt oder die Elemente aus Büchern und Zeitschriften, geben Sie die Anzahl der Seiten an, ordnen Sie sie in einer bestimmten Reihenfolge an und fügen Sie sie einem Buch bei oder stellen Sie sie zur Erleichterung für die Leser in einem separaten Band zusammen. Früher als Generalinspektion oder Vorbereitungsinspektion bekannt. Auch Blei genannt.

Das Kapitel „MySQL-Kerntechnologie und Best Practices“ ist großartig, daher ist der größte Teil des heutigen Inhalts eine Zusammenfassung dessen, was im Buch steht.

Verstehen Sie den Index auf einfachere Weise: Der Index ist der Teil vor dem Xinhua-Wörterbuch, der nach Wörtern anhand von Pinyin und Radikalen sucht.

Wenn Sie im Leben die Aussprache eines seltenen Wortes nicht kennen und es nicht mit Strichen durchsuchen, kann es sehr schwierig sein, es zu finden. Wenn Sie dies einer Maschine überlassen, bedeutet dies Nachschlagen aller Wörter im gesamten Wörterbuch, das nach dem Abgleich zurückgegeben wird. Dies führt zu einem vollständigen Tabellenscan, der sehr ineffizient ist.

Aber wenn wir nach Radikalen und dann nach Strichen suchen, ist die Datenmenge, die wir nachschlagen können, sehr gering. Überlassen Sie dies der Maschine und scannen Sie einfach die relevanten Datenelemente, was sehr schnell geht .

Daher hat die Abfragegeschwindigkeit keinen absoluten Zusammenhang mit der Größe der Daten. Die Abfragegeschwindigkeit hängt davon ab, wie viele Tabellendaten abgerufen und wie viele Tabellendaten gescannt werden. Je kleiner ihr Verhältnis ist, desto höher ist der Wirkungsgrad.

Mehrere wichtige Wissenspunkte:

1. Wenn MySQL Daten in der Tabelle abruft, sucht es zunächst im Index nach dem Wert des Indexes „Schlüsselwort“. Wenn sie gefunden wird, können Sie die Startseite direkt finden. Andernfalls wird die gesamte Tabelle gescannt.

Als ich Liu Xijuns Lied „Forget Him“ hörte, begann ich, den folgenden Inhalt zusammenzufassen.

2. Der Index ist eigentlich eine Kopie des Feldwerts in der Datenbanktabelle, und das geänderte Feld wird als Indexschlüssel bezeichnet.

3. Eine Datentabelle kann mehrere Indizes erstellen.

4. Was ist ein Präfixindex:

So verwenden Sie den „Radikalindex“ im Xinhua-Wörterbuch. Zuerst bestätigen wir, welches Wort das Wort enthält, das wir finden möchten, dann schauen wir uns die Striche des Wortes außerhalb des Worts an und suchen dann nach dem entsprechenden Wort. Ebenso kann bei Datenbanktabellen der Wert des Schlüsselworts im Index Teil des „Schlüsselworts“ des Index sein. Diese Art von Index wird als „Präfixindex“ bezeichnet in der Benutzertabelle. Zählen Sie die Nachnamen von Zhang im Namen.

Kann der Index eine Kombination von Feldern sein? , der Index kann eine Kombination von Feldern in der Datenbanktabelle sein. Wenn der Index aus mehreren Schlüsselwörtern besteht, wird er als zusammengesetzter Index bezeichnet. Unabhängig davon, ob es sich bei dem Index um ein Feld oder eine Kombination mehrerer Felder handelt, müssen diese Felder aus demselben stammen Tabelle, und der Wert des Bianche-Schlüsselworts muss das entsprechende Feld in der Tabelle sein.

Der Index kann nicht tabellenübergreifend erstellt werden Zusätzlicher Speicherplatz?

Diese Frage ist Unsinn, wenn Sie beispielsweise möchten, dass die Kuh gut läuft, aber ich möchte, dass die Indexdatei keinen Speicherplatz beansprucht Bei der Datenbanktabelle wird der Indexschlüssel nach der Sortierung im externen Speicher abgelegt. Bei der InnoDB-Speicher-Engine werden die Indexdaten in externen InnoDB-Tabellenbereichsdateien gespeichert (Dies können gemeinsam genutzte Tabellenbereichsdateien oder exklusive Tabellenbereichsdateien sein), unabhängig von MyISAM. Der Index der Tabelle ist immer noch ein InnoDB-Index. Die Schlüsselwörter des Index werden in aufsteigender Reihenfolge abgelegt 🎜> 8. Welche Felder in der Tabelle eignen sich zur Auswahl als Index der Tabelle? Was ist der Primärindex und was ist ein Clustered-Index?

Bei MyISAM-Tabellen indiziert MySQL automatisch die Sicherung der Primärschlüsselwerte aller Datensätze in der Tabelle und die Startseite jedes Datensatzes. Eine „Indextabelle“ wird wie eine radikale Suchtabelle generiert und im externen Speicher gespeichert. Dieser Index wird als Primärschlüssel bezeichnet. Die MYI-Indexdatei der MyISAM-Tabelle und die MYD-Datendatei befinden sich in zwei Dateien. Über den „Tabellendatensatzzeiger“ in der MYI-Indexdatei können Sie die physische Adresse finden, an der sich der Tabellendatensatz in der MYD-Datendatei befindet.

Der „Primärindex“ der Innodb-Tabelle unterscheidet sich vom Primärindex der MyISAM-Tabelle. Die Reihenfolge der Primärindexschlüssel der InnoDB-Tabelle stimmt mit der Reihenfolge der in der InnoDB-Tabelle aufgezeichneten Primärschlüsselwerte überein. Diese Art von Index wird als „Clustered-Index“ bezeichnet und jede Tabelle kann nur einen Clustered-Index haben.

9. Welche Beziehung besteht zwischen Index und Datenstruktur?

Die Regeln zum Speichern von Schlüsselwörtern in der Datenbank in der Indexdatei sind sehr komplex. Um die Effizienz des Datenbankabrufs effektiv zu verbessern. Indizes werden normalerweise mithilfe komplexer Datenstrukturen wie ausgeglichenen Bäumen (btrees) oder Hash-Tabellen „organisiert“. Beim Betrieb der Datenbank führen die zugrunde liegenden Vorgänge solch komplexe Vorgänge aus, aber wir können es nicht spüren.

10. Sind mehr Indizes besser?

Wenn zu viele Indizes vorhanden sind, müssen beim Aktualisieren von Daten (Hinzufügen, Ändern, Löschen) zusätzlich zum Ändern der Daten in der Tabelle auch alle Indizes der Tabelle verwaltet werden, um die Tabellenfeldwerte beizubehalten ​und indiziert die Konsistenz des Schlüsselwortwerts. Im Gegenteil, es verringert die Geschwindigkeit der Datenaktualisierung.

Üben Sie Tabellennamen, wenn die Vorgänge zum Ändern von Tabellendatensätzen besonders häufig vorkommen. Zu viele Indizes führen zu einem erheblichen Anstieg der Anzahl von Festplatten-E/As, was die Serverleistung erheblich verringert. Es kann sogar zu Ausfallzeiten kommen.

11. Grundsätze für die Auswahl von Indexschlüsselwörtern.

Prinzip 1. Je höher die Streuung eines Feldes in der Tabelle, desto besser eignet sich das Feld als für die Indexierung ausgewähltes Schlüsselwort.

Wenn ein Datenbankbenutzer eine Primärschlüsseleinschränkung erstellt, erstellt MySQL automatisch einen Primärindex (Primärindex) und der Indexname lautet „Primär“. Beim Erstellen einer eindeutigen Einschränkung erstellt MySQL automatisch eine eindeutige Einschränkung (eindeutiger Index). ) Standardmäßig ist der Indexname der Feldname der eindeutigen Bindungsbeschränkung.

Prinzip 2. Felder, die weniger Speicherplatz beanspruchen, eignen sich besser als Schlüsselwörter für die Indizierung.

Prinzip 3. Felder mit festem Speicherplatz eignen sich besser als Schlüsselwörter für die Indizierung.

Prinzip 4: Indizes sollten für Felder erstellt werden, die häufig in where-Klauseln verwendet werden, Indizes sollten für Gruppierungsfelder oder Sortierfelder erstellt werden und Indizes sollten für Verbindungsfelder zwischen zwei Tabellen erstellt werden.

Letzte Nacht konnte ich nicht einschlafen. Als ich mich umschaute, erfuhr ich, dass meine Freundin sich scheiden ließ. Sie war das Mädchen, das ich im College mochte. Aufgrund ihrer Eigensinnigkeit und aus anderen Gründen kamen wir für kurze Zeit zusammen und trennten uns dann. Ich bin erst seit einem Jahr verheiratet und habe ein Kind. Mein Herz schmerzt plötzlich und ich träume davon, in die Vergangenheit zurückzukehren. In dieser Nacht, als die Sterne den Himmel füllten, war ich stur und eigensinnig, und sie war warm und duftend. Vergiss es, es ist besser, über diese Dinge nicht traurig zu sein, jeder ist dazu bestimmt zu sterben. Ich sollte besser richtig codieren.

Der Zweck der Indexeinführung besteht darin, die Effizienz des Abrufs zu verbessern, sodass die Auswahl von Indexschlüsselwörtern eng mit der SELECT-Anweisung zusammenhängt. Dieser Satz hat zwei Bedeutungen. Das Design der SELECT-Anweisung kann das Design des Index beeinflussen. Die Where-Klausel, die Group-By-Klausel und die Order-By-Klausel in der Select-Anweisung können sich auch auf das Design des Index auswirken. Für die Verknüpfungsfelder der beiden Tabellen sollten Indizes erstellt werden. Sobald die Fremdschlüsseleinschränkung erstellt ist, erstellt MySQL automatisch einen Index, der dem Fremdschlüssel entspricht. Dies liegt daran, dass das Fremdschlüsselfeld normalerweise das Verbindungsfeld der beiden Tabellen ist.

Prinzip 5. Felder, die häufig aktualisiert werden, eignen sich nicht zum Erstellen von Indizes, und Felder, die nicht in der where-Klausel erscheinen, sollten nicht indiziert werden.

Prinzip 6. Das Prinzip des Präfixes ganz links.

Es gibt einen weiteren Vorteil des zusammengesetzten Index, der sich in dem Konzept widerspiegelt, das als „ganz linkes Präfix“ bezeichnet wird. Es wird davon ausgegangen, dass mehrere Felder einer Tabelle (z. B. Vorname, Nachname, Adresse) erstellt werden Name: Vorname_Nachname_Adresse). Wenn die Bedingung der Where-Abfrage eine Kombination der folgenden Felder ist, verwendet MySQL den Index fname_lastname_address. In anderen Fällen wird der Index fname_lastname_address nicht verwendet.

Vorname,Nachname,Adresse

Vorname,;Nachname

Vorname

Prinzip 7. Versuchen Sie, Präfixindizes zu verwenden.

Erstellen Sie einen Index nur für den Nachnamenteil des Namens, wodurch der Speicherplatz des Index gespart und die Abrufeffizienz verbessert werden kann.

Wie das Datenbankdesign erfordert auch das Indexdesign die Ansammlung von Erfahrung und Weisheit von Datenbankentwicklern. Gleichzeitig ist es notwendig, bessere Indizes basierend auf den jeweiligen Eigenschaften des Systems zu entwerfen Effizienz“ und stellen Sie ein Gleichgewicht zwischen „Verringerung der Aktualisierungsgeschwindigkeit“ her. Dadurch wird die Gesamtleistung der Datenbank erheblich verbessert.

Index- und Einschränkungsbeziehung:

Welche Beziehung besteht zwischen Indizes und Einschränkungen in MySQL? Einschränkungen werden in Primärschlüsseleinschränkungen, Eindeutigkeitseinschränkungen, Standardwerteinschränkungen, Prüfeinschränkungen, Nicht-Null-Einschränkungen und Fremdschlüsseleinschränkungen unterteilt. Unter diesen sind Primärschlüsseleinschränkungen, Eindeutigkeitsbeschränkungen, Fremdschlüsseleinschränkungen und Indizes enger miteinander verbunden.

Einschränkungen werden hauptsächlich verwendet, um die Integrität der Datenbank sicherzustellen, wenn Geschäftslogik auf der Datenbank ausgeführt wird.

Der Index speichert Schlüsselwortdaten im externen Speicher in einer bestimmten Datenstruktur (z. B. Btree, Binärbaum, Hash usw.), um die Leistung beim Datenabruf zu verbessern.

Einschränkungen sind Konzepte auf logischer Ebene, während Indizes nicht nur logische Konzepte, sondern auch eine physische Speichermethode sind und ihre Existenz eine gewisse Menge an Speicherplatz erfordert.

Indexname eindeutiger Index

Indexname gewöhnlicher Index

Index complex_index (Preis, Veröffentlichungszeit) zusammengesetzter Index

Der größte Teil des Inhalts dieses Artikels ist ein Auszug In Bezug auf „MySQL-Kerntechnologie und Best Practices“ können interessierte Freunde dieses Buch kaufen und lesen. Es ist wirklich gut geschrieben.

Das Obige ist der Inhalt der MySQL-Studiennotizen (4) zur Datenbankindizierung. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Stellungnahme:
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