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'.
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:
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.