MySQL-indekser gør det nemt at lave opslag og forbedre SQL-forespørgselshastigheden. Sådan opretter du indeks i MySQL for at forbedre databasens ydeevne ved hjælp af MySQL CREATE INDEX-sætning.
Sådan fungerer indeksering i MySQL
Typisk, når du kører en SQL-forespørgsel med en WHERE-klausul eller andre slags opslag, såsom JOINS, skal MySQL scanne alle poster i din tabel for at finde matchende rækker. Hvis dine tabeller har millioner af rækker, kan dette være meget tidskrævende og sænke dine SQL-forespørgsler betydeligt.
MySQL-indekser fremskynder dine SQL-forespørgsler ved at opretholde de indekserede kolonneværdier i en B-træstruktur, som er optimeret til opslag og matchning. Så indekser gør det nemmere hurtigt at finde rækker, der matcher en eller flere værdier.
Som standard opretter MySQL indeks for hver primær nøglekolonne i din database.
Bonus Læs:Sådan opretter du lagret procedure i MySQL
Sådan opretter du indeks i MySQL
Her er trinene til at oprette indeks i MySQL. Du kan enten oprette et indeks på tidspunktet for oprettelse af tabellen eller tilføje det efterfølgende. Vi vil se på begge disse tilgange.
Sådan opretter du MySQL-indeks under oprettelse af tabel
Her er syntaksen til at oprette indeks under oprettelse af tabel
CREATE TABLE table_name(
column_definitions,
INDEX (list_of_columns)
);
I ovenstående forespørgsel, tabelnavn er din tabel, der skal oprettes, og kolonne_definitioner er listen over kolonner og definitioner.
INDEX(liste_over_kolonner) er hvor du opretter MySQL-indeks. Indekset vil blive oprettet for den kommaseparerede liste over kolonner nævnt som list_of_columns
Bonuslæser:Sådan opretter du bruger i MySQL
Her er et eksempel.
CREATE TABLE orders(
order_id INT PRIMARY KEY,
sale INT NOT NULL,
product_id INT NOT NULL,
product_name VARCHAR(10),
INDEX (product_id)
);
I ovenstående forespørgsel har vi oprettet indeks for product_id kolonne.
Her er et eksempel på, hvordan du opretter indeks ved hjælp af flere kolonner.
CREATE TABLE orders(
order_id INT PRIMARY KEY,
sale INT NOT NULL,
product_id INT NOT NULL,
product_name VARCHAR(10),
INDEX (product_id, order_id)
);
I ovenstående forespørgsel har vi oprettet indeks for flere kolonner product_id, order_id
Bonus Læs:Sådan opretter du database i MySQL
Sådan tilføjer du indeks til kolonne i tabel
Lad os sige, at du vil tilføje indeks for kolonne eller sæt af kolonner, og brug derefter CREATE INDEX-sætning. Her er syntaksen for CREATE INDEX-sætningen
CREATE INDEX index_name ON table_name (column_list)
I ovenstående forespørgsel specificerer vi indeksnavnet, den tabel, som du skal oprette indeks for, og en liste over kolonner, der skal inkluderes i indekseringen.
Her er et eksempel på at tilføje nyt indeks for kolonne produktnavn i ovenstående ordrer bord
CREATE INDEX prod_name_index ON orders (product_name);
For at se de indekser, der er tilføjet til en tabel, kan du bruge SHOW INDEXES-sætningen. Her er syntaksen for VIS INDEKSER
SHOW INDEXES from table_name;
Her er et eksempel for at se indekser fra ordrer tabel
SHOW INDEXES from orders;
Forhåbentlig vil ovenstående artikel hjælpe dig med at oprette indeks i MySQL.
Ubiq gør det nemt at visualisere data på få minutter og overvåge i dashboards i realtid. Prøv det i dag!