Heim  >  Artikel  >  Datenbank  >  Detaillierte Grafik- und Texterklärung zum Erstellen eines Index für eine Join-Tabelle, die sich auf zwei Tabellen in MySQL bezieht

Detaillierte Grafik- und Texterklärung zum Erstellen eines Index für eine Join-Tabelle, die sich auf zwei Tabellen in MySQL bezieht

小云云
小云云Original
2018-01-13 16:26:055820Durchsuche

Dieser Artikel stellt Ihnen anhand von Bildern und Texten die relevanten Informationen zum Erstellen eines Index für die Verbindungstabelle für zwei Tabellen in MySQL vor. Die Einführung im Artikel ist sehr detailliert und bietet für jeden einen gewissen Referenz- und Lernwert. Freunde, die es brauchen, können es gemeinsam lesen.

Einleitung zum Problem

Erstellen Sie einen Index für die Datenbank. Sie können einen einzelnen Spaltenindex auswählen oder einen kombinierten Index erstellen.

In der folgenden Situation sind die Benutzertabelle (user) und die Abteilungstabelle (dept) über die Abteilungsbenutzerzuordnungstabelle (deptuser) verbunden, wie in der folgenden Abbildung dargestellt:


Beziehungen zwischen Tabellen

Die Frage ist, wie erstelle ich einen Index in dieser verwandten Tabelle?

Für diese Tabelle gibt es die folgenden vier Optionen:

  • Erstellen Sie einen einzelnen Spaltenindex idx_user für user_uuid

  • Für user_dept Erstellen Sie einen einzelnen Spaltenindex idx_dept

  • Erstellen Sie einen kombinierten Index idx_user_dept, also (user_uuid, dept_uuid)

  • Erstellen Sie einen kombinierten Index idx_dept_user, das heißt (dept_uuid, user_uuid)

Es gibt vier Situationen zum Abfragen der Zuordnungstabelle:

-- 一、人员查所属部门用and方式
EXPLAIN SELECT d.dept_name,u.* FROM org_dept d,org_user u,org_dept_user duser WHERE u.user_uuid=duser.user_uuid AND d.dept_uuid=duser.dept_uuid AND u.user_code="dev1";
-- 二、人员查所属部门用join方式
EXPLAIN SELECT d.dept_name,u.* FROM org_user u LEFT JOIN org_dept_user du ON u.user_uuid=du.user_uuid LEFT JOIN org_dept d ON du.dept_uuid=d.dept_uuid WHERE u.user_code="dev1";
-- 三、部门查人员用and方式
EXPLAIN SELECT d.dept_name,u.* FROM org_dept d,org_user u,org_dept_user du WHERE u.user_uuid=du.user_uuid AND d.dept_uuid=du.dept_uuid AND d.dept_code="D006";
-- 四、部门查所属人员用join方式
EXPLAIN SELECT d.dept_name,u.* FROM org_dept d LEFT JOIN org_dept_user du ON d.dept_uuid=du.dept_uuid LEFT JOIN org_user u ON u.user_uuid=du.user_uuid WHERE d.dept_code="D006";

Testüberprüfung

1 . Überprüfen Sie die Abteilung, zu der das Personal gehört. Verwenden Sie die Methode und

1.1 Kein Index für zugehörige Tabellen


1.2 Einzelindex Idx_dept


1.3 Einzelindex Idx_user


1.4 Kombinierter Index Idx_dept_user


1.5 Kombinationsindex Idx_user_dept


1.6 Alle werden erstellt am


2. Wird verwendet, um die Abteilung zu überprüfen, zu der das Personal gehört. Join-Methode

2.1 Kein Index für zugehörige Tabelle

2.2 Einzelner Index Idx_dept


2.3 Einzelindex Idx_user

2.4 Kombinierter Index Idx_dept_user


2.5 Kombinierter Index Idx_user_dept


2.6 Alle sind etabliert


3. Verwenden Sie die AND-Methode, um Personal in Abteilungen zu überprüfen

3.1 Die zugehörige Tabelle hat keinen Index

3.2 Einzelindex Idx_dept


3.3 Einzelindex Idx_user


3.4 Kombinationsindex Idx_dept_user


3.5 Kombinationsindex Idx_user_dept


3.6 Alle sind gegründet am


4. Um das zur Abteilung gehörende Personal zu überprüfen, verwenden Sie die Join-Methode

4.1 Es gibt keinen Zuordnungstabellenindex


4.2 Einzelindex Idx_dept


4.3 Einzelindex Idx_user

4.4 Kombinierter Index Idx_dept_user


4.5 Kombinierter Index Idx_user_dept


4.6 Alles ist etabliert

Fazit

Aus den obigen tatsächlichen Testergebnissen lassen sich folgende Schlussfolgerungen ziehen: Für diese Zuordnungstabelle ist es optimal, einspaltige Indizes idx_user und idx_dept für user_uuid bzw. dept_uuid einzurichten.

Der Index idx_user eignet sich zum Abfragen der Abteilung der Person über die Personal-ID; der Index idx_dept eignet sich zum Abfragen des Personals unter der Abteilung über die Abteilung.

Verwandte Empfehlungen:

Analysieren Sie die kombinierte Verwendung von Aggregatfunktionen und verknüpfen Sie Tabellen_MySQL

MySQL implementiert Assoziationsaktualisierungen zwischen zwei Tabellen_MySQL ,

Detaillierte Einführung in die Tabellenpartitionierung in MySQL

Das obige ist der detaillierte Inhalt vonDetaillierte Grafik- und Texterklärung zum Erstellen eines Index für eine Join-Tabelle, die sich auf zwei Tabellen in MySQL bezieht. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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