sql >> Database >  >> RDS >> Mysql

Index maken in MySQL

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!

  1. Hoe pgAdmin 4 te installeren op Ubuntu 20.04/18.04/16.04

  2. Een tekenreeks naar hoofdletters converteren in SQL

  3. TO_TIMESTAMP_TZ() Functie in Oracle

  4. Hoe kan ik een kolom toevoegen die geen nulls toestaat in een Postgresql-database?