sql >> Database teknologi >  >> RDS >> Mysql

Sådan opretter du indeks i MySQL

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!

  1. MYSQL Vælg MAX Date i en sammenslutningserklæring

  2. Konfiguration af Service Broker til asynkron behandling

  3. Hvordan deaktiverer jeg midlertidigt triggere i PostgreSQL?

  4. Send værdier læst fra en fil som input til en SQL-forespørgsel i Oracle