MySQL-indexen maken het gemakkelijk om zoekopdrachten uit te voeren en de snelheid van SQL-query's te verbeteren. Hier leest u hoe u een index in MySQL kunt maken om de databaseprestaties te verbeteren, met behulp van de MySQL CREATE INDEX-instructie.
Hoe indexeren werkt in MySQL
Wanneer u een SQL-query uitvoert met een WHERE-component of andere soorten zoekacties, zoals voor JOINS, moet MySQL doorgaans alle records in uw tabel scannen om overeenkomende rijen te vinden. Als uw tabellen miljoenen rijen hebben, kan dit erg tijdrovend zijn en uw SQL-query's aanzienlijk vertragen.
MySQL-indexen versnellen uw SQL-query's door de geïndexeerde kolomwaarden te behouden in een B-boomstructuur die is geoptimaliseerd voor opzoeken en matchen. Indexen maken het dus gemakkelijker om snel rijen te vinden die overeenkomen met een of meer waarden.
Standaard maakt MySQL een index voor elke primaire sleutelkolom in uw database.
Bonus lezen:Opgeslagen procedure maken in MySQL
Hoe maak je een index in MySQL
Hier zijn de stappen om een index te maken in MySQL. U kunt ofwel een index maken op het moment dat de tabel wordt gemaakt, of deze achteraf toevoegen. We zullen beide benaderingen bekijken.
Hoe een MySQL-index te maken tijdens het maken van tabellen
Hier is de syntaxis om een index te maken tijdens het maken van tabellen
CREATE TABLE table_name(
column_definitions,
INDEX (list_of_columns)
);
In de bovenstaande zoekopdracht, table_name is uw tabel die moet worden gemaakt en column_definitions is de lijst met kolommen en definities.
INDEX(lijst_van_kolommen) is waar u MySQL-index maakt. De index wordt gemaakt voor de door komma's gescheiden lijst van kolommen die worden genoemd als list_of_columns
Bonus lezen:een gebruiker maken in MySQL
Hier is een voorbeeld.
CREATE TABLE orders(
order_id INT PRIMARY KEY,
sale INT NOT NULL,
product_id INT NOT NULL,
product_name VARCHAR(10),
INDEX (product_id)
);
In de bovenstaande zoekopdracht hebben we een index gemaakt voor product_id kolom.
Hier is een voorbeeld van hoe u een index kunt maken met meerdere kolommen.
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)
);
In de bovenstaande zoekopdracht hebben we een index gemaakt voor meerdere kolommen product_id, order_id
Bonus Lezen:Database maken in MySQL
Index toevoegen aan kolom in tabel
Stel dat u een index voor een kolom of reeks kolommen wilt toevoegen en gebruik vervolgens de instructie CREATE INDEX. Hier is de syntaxis van de CREATE INDEX-instructie
CREATE INDEX index_name ON table_name (column_list)
In de bovenstaande query specificeren we de indexnaam, de tabel waarvoor u een index moet maken en een lijst met kolommen die moeten worden opgenomen in indexering.
Hier is een voorbeeld om een nieuwe index toe te voegen voor kolom product_name in de bovenstaande bestellingen tafel
CREATE INDEX prod_name_index ON orders (product_name);
Om de indexen te bekijken die aan een tabel zijn toegevoegd, kunt u de instructie SHOW INDEXES gebruiken. Hier is de syntaxis voor SHOW INDEXES
SHOW INDEXES from table_name;
Hier is een voorbeeld om indexen van orders te bekijken table
SHOW INDEXES from orders;
Hopelijk helpt het bovenstaande artikel u bij het maken van een index in MySQL.
Ubiq maakt het gemakkelijk om gegevens binnen enkele minuten te visualiseren en in realtime dashboards te controleren. Probeer het vandaag nog!