MySQL MariaDB

Kuidas leida MySQL-i tabeli indeks?

Kuidas leida MySQL-i tabeli indeks?
Andmepanga register on andmekorraldus, mis suurendab tabelitehingute kiirust. Ühe või isegi mitme veeru olemasolul võidakse genereerida indeksid, mis panevad aluse vastastikku kiiretele juhuslikele otsingutele ja efektiivsele kirjete eelkorraldusele. Indeksi koostamisel tuleks seda meeles pidada, et kõik veerud eraldatakse SQL-päringute genereerimiseks ja nende veergude jaoks ühe või isegi rohkemate indeksite loomiseks. Praktikas on indeksid tabelite vormid, mis hoiavad esmast võtit või indeksveeru välja ja viitavad iga kirje individuaalsele tabelile. Kasutajad ei pruugi indekse näha, need on päringute kiirendamiseks valatud, aga ka andmebaasi otsingumootor tarbiks neid väga kiiresti kirjete jälitamiseks.

Indeksid MySQL WorkBenzi abil

Esiteks käivitage oma MySQL Workbench ja ühendage see juur andmebaasiga.

Loome andmebaasi „andmed” uue tabeli „kontaktid”, millel on erinevad veerud. Meil on selles tabelis üks esmane võti ja üks UNIKAALSE võtme veerg, nt.g. ID ja meiliaadress. Siinkohal peate selgitama, et te ei pea võtmeveerude UNIQUE ja PRIMARY indekseid looma. Andmebaas loob indeksid mõlemat tüüpi veergude jaoks. Niisiis teeme veeru "telefon" jaoks indeksi "telefon" ja veergude "eesnimi" ja "perekonnanimi" indeksi "nimi". Täitke päring, kasutades tegumiriba välklambi ikooni.

Väljundist näete, et tabel ja indeksid on loodud.

Nüüd navigeerige skeemiriba suunas. Loendi 'Tabelid' alt leiate vastloodud tabeli.

Proovime käsku NÄITA INDEKSE, et kontrollida selle konkreetse tabeli indekseid, nagu on näidatud allpool päringualal, kasutades välkmärki.

See aken ilmub korraga. Näete veergu "Key_name", mis näitab, et võti kuulub igasse veergu. Kuna oleme loonud indeksi „telefon” ja „nimi”, ilmub see ka. Näete muud asjakohast teavet indeksite kohta e.g., konkreetse veeru indeksi järjestus, indeksi tüüp, nähtavus jne.

Indeksid MySQL-i käsurea kestaga

Avage MySQL-i käsurea kliendi kest arvutist. Kasutamise alustamiseks sisestage MySQL-i parool.

Näide 01
Oletame, et skeemis 'order' on tabel 'order1', millel on mõned veerud, millel on pildil näidatud väärtused. Kasutades käsku SELECT, peame tooma kirjed 'order1'.

>> SELECT * FROM andmetest.tellimus1;

Kuna me pole tabeli 'order1' jaoks veel ühtegi indeksit määranud, on seda võimatu ära arvata. Niisiis proovime indeksite kontrollimiseks käsku NÄITA INDEKSE või NÄITA VÕTMISI järgmiselt:

>> NÄITA võtmeid order1 IN andmetest;

Võite tajuda, et tabelis 'order1' on allpool olevast väljundist ainult üks primaarvõtme veerg. See tähendab, et ühtegi indeksit pole veel määratletud, seetõttu näitab see esmase võtme veeru „id” jaoks ainult 1-realisi kirjeid.

Kontrollime tabeli 'order1' mis tahes veeru indekseid, kus nähtavus on välja lülitatud, nagu allpool näidatud.

>> NÄITA INDEKSEID andmetest.järjekord1 KUS NÄHTAV = 'EI';

Nüüd loome tabelis 'order1' mõned AINUAADSED indeksid.  Oleme nimetanud selle UNIKAALSE INDEKSI nimega 'rec' ja rakendanud seda neljale veerule: id, Region, Status ja OrderNo. Selleks proovige allolevat käsku.

>> LOE UNIKAALNE INDEKS-andmete andmed.order1 (id, Region, Status, OrderNo);

Nüüd vaatame konkreetse tabeli indeksite loomise tulemust. Tulemus antakse allpool pärast käsu SHOW INDEXES kasutamist. Meil on kõigi loodud indeksite loend, millel on iga veeru jaoks samad nimed "rec".

>> NÄITA INDEKSEID alates order1 IN andmetest;

Näide 02
Oletame, et andmebaasi „andmed” uus tabel „õpilane” sisaldab nelja veeruga välja, millel on mõned kirjed. Selle tabeli andmed hankige SELECT-päringu abil järgmiselt:

>> SELECT * FROM andmetest.õpilane;

Toome esmalt esmase võtme veeru indeksid, proovides allpool käsku NÄITA INDEKSID.

>> NÄITA INDEKSEID andmetest.õpilane WHERE Key_name = 'PRIMARY';

Näete, et see väljastab päringus kasutatava klausli WHERE tõttu ainsa veeru tüübi 'PRIMARY' registrikirje.

Loome ühe unikaalse ja ühe unikaalse indeksi erinevatesse tabeli „õpilane” veergudesse. Kõigepealt loome tabeli 'õpilane' veergu "Nimi" UNIKAALSE indeksi "std", kasutades käsurea kliendi kestal käsku CREATE INDEX, nagu allpool.

>> LOE ainulaadne indeks indeks andmete kohta.õpilase nimi );

Loome või lisame tabeli 'student' veergu 'Subject' mitteunikaalse indeksi käsu ALTER kasutamise ajal. Jah, me oleme kasutanud käsku ALTER, sest seda kasutatakse tabeli muutmiseks. Seega oleme tabelit muutnud, lisades veergudele indekseid. Nii et proovime käsurea kestas allpool toodud ALTER TABLE päringut, lisage veergu "Subject" register "stdSub".

>> ALTER TABEL andmed.õpilane ADD INDEX stdSub (Subject);

Nüüd on kätte jõudnud kord kontrollida tabelis 'õpilane' ning selle veergudes 'Nimi' ja 'Teema' lisatud uusi indekseid. Selle kontrollimiseks proovige allolevat käsku.

>> NÄITA INDEKSEID andmetest.õpilane;

Väljundist näete, et päringud on määranud veergu „Subject” mittekordumatu registri ja veerus „Name” kordumatu registri. Näete ka indeksite nimesid.

Proovime käsku DROP INDEX tabeli 'student' viskamiseks indeks 'stdSub'.

>> DROP INDEX stdSub ON andmed.õpilane;

Vaadake ülejäänud indeksid, kasutades sama SHOW INDEXi käsku nagu allpool. Nüüd oleme lahkunud, kuna tabelisse "üliõpilane" on jäänud ainult kaks indeksit, nagu allpool esitatud väljundi järgi.

>> NÄITA INDEKSEID andmetest.õpilane;

Järeldus

Lõpuks oleme teinud kõik vajalikud näited ainulaadsete ja mitteunikaalsete indeksite loomise, indeksite kuvamise või kontrollimise ja konkreetse tabeli indeksite viskamise kohta.

Kuidas muuta hiire ja puuteplaatide kerimise suund Windows 10-s ümber
Hiir ja PuuteplaatNeed muudavad arvutamise mitte ainult lihtsaks, vaid ka tõhusamaks ja vähem aeganõudvaks. Me ei kujuta ette elu ilma nende seadmetet...
Kuidas muuta hiirekursori ja kursori suurust, värvi ja skeemi Windows 10-s
Windows 10 hiirekursor ja kursor on operatsioonisüsteemi väga olulised aspektid. Seda võib öelda ka teiste opsüsteemide kohta, nii et tegelikult pole ...
Tasuta ja avatud lähtekoodiga mängumootorid Linuxi mängude arendamiseks
See artikkel hõlmab loetelu tasuta ja avatud lähtekoodiga mängumootoritest, mida saab kasutada 2D- ja 3D-mängude arendamiseks Linuxis. Selliseid mängu...