Creați index în MySQL: Tutorial MySQL Index [2022]

Publicat: 2021-01-01

Un Data Scientist sau un programator va trebui să lucreze cu cantități mari de date și trebuie să fie capabil să le gestioneze eficient pentru o execuție mai rapidă. De asemenea, trebuie să știe cum sunt organizate datele și cele mai rapide metode pentru a accesa cu ușurință datele specifice necesare.

Întrucât MySQL este un sistem de gestionare a bazelor de date relaționale care are aplicații în diverse sectoare, cum ar fi baze de date web, aplicații de comerț electronic, rețele sociale etc., cercetătorii de date trebuie să cunoască toate tehnicile legate de MySQL, dintre care unul este indexurile. Articolul descrie cum se creează Index în MySQL.

Cuprins

Ce este un index?

În MySQL, indexurile sunt folosite pentru a sorta datele într-un mod secvenţial organizat şi pentru a prelua datele eficient şi rapid. Acestea sunt create folosind una sau mai multe coloane care vor fi folosite pentru filtrarea datelor. Indecii sunt un tip de tabel care păstrează un câmp primar sau index și un pointer către fiecare înregistrare din tabelul principal.

Pentru o mai bună înțelegere, un index de carte poate fi folosit ca exemplu. În loc să cauți o pagină parcurgând toate paginile unei cărți, indexul cărții poate fi verificat pentru a găsi pagina pe care o caută.

În majoritatea sistemelor de baze de date, este nevoie de performanță ridicată și rapidă. Multe companii investesc sume uriașe de bani pe hardware pentru preluarea și manipularea mai rapidă a datelor. Dar prin optimizarea bazei de date, costurile pot fi reduse.

Timpul de răspuns este de obicei mai lung, deoarece înregistrările sunt stocate aleatoriu, iar interogările de căutare trebuie să găsească datele necesare parcurgând în buclă toate înregistrările stocate. Indexurile fac această căutare mai ușoară și mai rapidă.

Citiți: Redenumiți numele coloanei în SQL

Creați index

Puteți crea index în MySQL pe un tabel utilizând următoarea sintaxă de bază.

CREATE INDEX nume_index nume_tabel (nume_coloană);

De asemenea, puteți crea un index unic pe un tabel. Aceasta înseamnă că numele este unic și orice două rânduri nu pot avea același nume. Următoarea sintaxă poate fi folosită pentru aceasta.

CREATE UNIQUE INDEX nume_index ON nume_tabel (nume_coloană);

Dacă este creat un index secundar pentru o coloană, MySQL stochează valorile într-o structură de date separată, cum ar fi B-Tree și Hash. În MySQL, dacă coloanele sunt coloane cu șir, puteți crea un index pentru partea de început a valorilor coloanei coloanei cu șir folosind sintaxa:

nume_coloană(lungime)

Pentru a crea partea cheie a prefixului de coloană atunci când este creat tabelul, se poate folosi următoarea sintaxă:

CREATE TABLE table_name(

listă_coloană,

INDEX(nume_coloană(lungime))

);

Și pentru a adăuga un index la un tabel existent:

CREATE INDEX nume_index ON nume_tabel (nume_coloană(lungime));

Lungimea aici este numărul de caractere dacă este un tip de șir non-binar, cum ar fi CHAR, VARCHAR și TEXT și numărul de octeți dacă este de tip șir binar, cum ar fi BINARY, VARBINARY și BLOB. De asemenea, puteți crea părți cheie de prefix de coloană pentru coloanele CHAR, VARCHAR, BINARY și VARBINARY în MySQL. Este necesar să specificați părțile cheie de prefix de coloană dacă ați creat indecși pentru coloanele BLOB și TEXT.

În cazul indicilor FULLTEXT care sunt acceptați numai pentru tabelele InnoDB și MyISAM, aceștia pot include numai coloanele CHAR, VARCHAR și TEXT. Nu acceptă indexarea prefixului de coloană și dacă este specificată orice lungime a prefixului, aceasta este ignorată.

Trebuie citit: Idei de proiecte SQL

Modificarea tabelelor pentru a adăuga sau a renunța la index

Pentru a adăuga indecși la un tabel, există patru tipuri de instrucțiuni care pot fi utilizate:

  1. Pentru a adăuga o cheie primară:

ALTER TABLE table_name ADD PRIMARY KEY (listă_coloană);

Valorile indexate aici ar trebui să fie unice și nu pot fi NULL.

  1. Pentru un index cu valori unice:

ALTER TABLE nume_tabel ADD UNIQUE nume_index (listă_coloană);

Valorile ar trebui să fie unice, cu excepția NULL care poate apărea de mai multe ori.

  1. Pentru a adăuga un index obișnuit:

ALTER TABLE nume_tabel ADD INDEX nume_index (listă_coloană);

Aici valorile pot apărea de mai multe ori.

  1. Pentru a crea un index FULLTEXT special:

ALTER TABLE nume_tabel ADD FULLTEXT nume_index (listă_coloană);

Indexul FULLTEXT poate fi folosit pentru căutarea textului.

În tabelele existente

Pentru a adăuga index în orice tabel existent, se poate folosi următoarea sintaxă:

ALTER TABLE nume_tabel ADD INDEX (nume_index);

Pentru a șterge un index dintr-un tabel, se folosește instrucțiunea DROP INDEX:

ALTER TABLE nume_tabel DROP INDEX (nume_index);

Afișează informații despre index

Pentru a lista toți indecșii asociați cu orice tabel, este folosită comanda SHOW INDEX.

AFIȚĂ INDEX FROM nume_tabel\G

„\G” este folosit pentru a crea lista într-un format vertical, ceea ce evită linia lungă.

Citiți și: Întrebări și răspunsuri la interviu SQL

Indici descendenți

InnoDB poate stoca intrările în ordine descrescătoare când indexul este un index descendent. Deci, atunci când în interogare este solicitată ordinea descendentă, optimizatorul alege acest index. Acest lucru este mai eficient pentru interogările cu clauze ORDER BY. Acestea sunt acceptate doar de motorul de stocare InnoDB.

Sintaxa pentru crearea sau adăugarea indecșilor descendenți este similară cu sintaxele Alter or create folosite mai sus.

ALTER TABLE table_name ADD index_name (col1_name desc, col2_name asc);

CREATE INDEX index_name ON table_name (col1_name desc, col2_name asc);

Indici invizibili

Pentru a marca indecșii ca indisponibili pentru optimizatorul de interogări, pot fi utilizați indecși invizibili. MySQL actualizează indecșii invizibili atunci când datele din coloanele asociate cu indexul se modifică. Indecșii sunt vizibili implicit și pentru a le face invizibili, trebuie să declarați în mod explicit vizibilitatea în momentul creării sau folosind comanda ALTER TABLE.

Pentru a crea un index invizibil, se folosește următoarea sintaxă:

CREATE INDEX nume_index ON nume_tabel (c1, c2…) INVIZIBIL;

Pentru a modifica vizibilitatea indecșilor existenți, se utilizează următoarea sintaxă:

ALTER TABLE nume_tabel ALTER INDEX nume_index [VIZIBLE | INVIZIBIL];

Înscrieți-vă la cursuri online de dezvoltare software de la cele mai bune universități din lume. Câștigă programe Executive PG, programe avansate de certificat sau programe de master pentru a-ți accelera cariera.

Concluzie

Performanța interogărilor de căutare MySQL poate fi îmbunătățită prin utilizarea indexurilor. Acestea pot fi definite când este creat un tabel sau pot fi adăugate ulterior dacă tabelul este deja creat.

Acest articol a oferit o scurtă descriere a ce este un index și de ce este utilizat. Următoarea secțiune explică cum să creați un index în MySQL, cum poate fi adăugat la un tabel existent și cum să creați un index unic.

Diferitele comenzi pentru modificarea tabelelor și crearea sau eliminarea unui index au fost, de asemenea, descrise împreună cu afișarea informațiilor despre index. Au fost explicați pe scurt și indicii descendenți și invizibili.

În general, învățarea și practicarea practică a tuturor bazelor de date menționate în acest articol se vor adăuga experienței tale. Parcurgeți prezentarea generală a cursului, învățarea și oportunitățile de angajare implicate de acesta - platforme precum upGrad oferă cursuri puternice, concepute de institute de mare renume precum IIIT-B în Programul Executive PG Dezvoltare completă.

Pregătiți-vă pentru o carieră a viitorului

Aplicați acum pentru masterat în inginerie software