sql >> Databasteknik >  >> RDS >> Mysql

Hur man skapar index i MySQL

MySQL-index gör det enkelt att göra uppslagningar och förbättra SQL-frågehastigheten. Så här skapar du index i MySQL för att förbättra databasprestanda, med hjälp av MySQL CREATE INDEX-satsen.

Hur indexering fungerar i MySQL

Vanligtvis, när du kör en SQL-fråga med en WHERE-sats eller andra typer av uppslag som för JOINS, måste MySQL skanna alla poster i din tabell för att hitta matchande rader. Om dina tabeller har miljontals rader kan detta vara mycket tidskrävande och sakta ner dina SQL-frågor avsevärt.

MySQL-index påskyndar dina SQL-frågor genom att behålla de indexerade kolumnvärdena i en B-trädstruktur som är optimerad för uppslagningar och matchning. Så index gör det lättare att snabbt hitta rader som matchar ett eller flera värden.

Som standard skapar MySQL index för varje primärnyckelkolumn i din databas.

Bonus Läs:Hur man skapar lagrad procedur i MySQL

Hur man skapar index i MySQL

Här är stegen för att skapa index i MySQL. Du kan antingen skapa index vid tidpunkten för tabellskapandet eller lägga till det i efterhand. Vi kommer att titta på båda dessa tillvägagångssätt.

Hur man skapar MySQL-index under tabellskapandet

Här är syntaxen för att skapa index under tabellskapandet

CREATE TABLE table_name(
   column_definitions,
   INDEX (list_of_columns) 
);

I ovanstående fråga, tabellnamn är din tabell som ska skapas och kolumndefinitioner är listan över kolumner och definitioner.

INDEX(lista_över_kolumner) är där du skapar MySQL-index. Indexet kommer att skapas för den kommaseparerade listan med kolumner som nämns som list_of_columns

Bonus Läs:Hur man skapar användare i MySQL

Här är ett exempel.

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 ovanstående fråga har vi skapat Index för product_id kolumn.

Här är ett exempel på hur du skapar index med flera kolumner.

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 ovanstående fråga har vi skapat index för flera kolumner product_id, order_id

Bonus Läs:Hur man skapar en databas i MySQL

Hur man lägger till index till kolumn i tabell

Låt oss säga att du vill lägga till index för kolumn eller uppsättning kolumner, och använd sedan CREATE INDEX-satsen. Här är syntaxen för CREATE INDEX-satsen

CREATE INDEX index_name ON table_name (column_list)

I frågan ovan anger vi indexnamnet, tabellen som du behöver skapa index för och lista över kolumner som ska inkluderas i indexeringen.

Här är ett exempel för att lägga till nytt index för kolumnen produktnamn i ovanstående beställningar bord

CREATE INDEX prod_name_index ON orders (product_name);

För att se de index som lagts till i en tabell kan du använda SHOW INDEXES-satsen. Här är syntaxen för VISA INDEX

SHOW INDEXES from table_name;

Här är ett exempel för att visa index från order tabell
SHOW INDEXES from orders;

Förhoppningsvis kommer artikeln ovan att hjälpa dig att skapa index i MySQL.

Ubiq gör det enkelt att visualisera data på några minuter och övervaka i realtidsinstrumentpaneler. Prova det idag!

  1. Är ett dödläge möjligt när man uppdaterar och tar bort olika rader i en tabell?

  2. Oracle10g SQL pivot

  3. Få Visa information med VIEWS Information Schema View i SQL Server

  4. SQL GROUP BY CASE-sats med aggregatfunktion