目次
- 1 1. MySQL-i indeksid: andmebaasi jõudluse parandamise võti
- 2 2. MySQL-is indeksite kontrollimise põhiline meetod
- 3 3. INFORMATION_SCHEMA.STATISTICS tabeli indeksite kontrollimine
- 4 4. Indeksi lisamise ja eemaldamise meetodid ning nende mõju
- 5 5. EXPLAIN lauset kasutades indeksi jõudluse kontroll
- 6 6. Kokkuvõte
1. MySQL-i indeksid: andmebaasi jõudluse parandamise võti
MySQL-i andmebaasis indekseid tõhusalt kasutades saate päringute jõudlust märkimisväärselt parandada. Indeks on andmestruktuur, mis luuakse andmebaasi konkreetsetele veergudele (tulpadele) ning mille eesmärk on suurendada otsingu ja filtreerimise kiirust. Näiteks suures andmemahus konkreetse teabe väljavõtmisel võimaldab indeks kasutamine vältida kogu andmete läbivaatamist ja otsida ainult indeksi sees määratud veerge.Indeksi roll ja tüübid
MySQL-i indeksitel on järgmised tüübid.- PRIMARY(primaarvõti):Tabeli kohta on lubatud ainult üks unikaalne võti, mida kasutatakse tabeli peamise identifikaatorina.
- UNIQUE indeks:Indeks, mis säilitab unikaalsuse ja takistab määratud veergudele duplikaatväärtuste sisestamist.
- tavaline indeks:Indeks, millel ei ole unikaalsuse piirangut ja mida kasutatakse konkreetsete veergude otsingutõhususe suurendamiseks.
2. MySQL-is indeksite kontrollimise põhiline meetod
MySQL-s kasutatakse olemasolevate indeksite kontrollimiseks SHOW INDEX käsku. See on lihtne SQL käsk, mis kuvab määratud tabeli indeksite teavet. Allpool tutvustame konkreetseid samme.SHOW INDEXi põhiline süntaks ja väljund
SHOW INDEX FROM tabeli_nimi;
Väljundi selgitus
Kui käivitate selle käsu, kuvatakse järgmine teave.- Table: indeksit sisaldava tabeli nimi
- Non_unique: indeks on unikaalne (0) või lubab kordusi (1)
- Key_name: indeksi nimi
- Column_name: veeru nimi, millele indeks on rakendatud
- Cardinality: indeksis registreeritud unikaalsete väärtuste hinnang. Kasutatakse otsingu tõhususe näitajana.
3. INFORMATION_SCHEMA.STATISTICS tabeli indeksite kontrollimine
SHOW INDEX käsu kõrval on MySQL-is ka võimalus kontrollida indekseid viidates INFORMATION_SCHEMA.STATISTICS tabelile. See on kasulik kogu andmebaasi indeksite loetlemiseks ning võimaldab saada veelgi üksikasjalikumat teavet.INFORMATION_SCHEMA.STATISTICS põhikü
SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, INDEX_NAME
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = 'andmebaasi_nimi';
Päringu tulemuste üksikasjad
- TABLE_SCHEMA: indeksi kuuluv andmebaasi nimi
- TABLE_NAME: tabeli nimi, kus indeks eksisteerib
- COLUMN_NAME: veeru nimi, millele indeks on rakendatud
- INDEX_NAME: indeksi nimi
4. Indeksi lisamise ja eemaldamise meetodid ning nende mõju
Indeksi lisamise meetod
Indeksit saab vajadusel hiljem lisada. Kasutades allolevat käsku, luuakse indeks määratud veerule.CREATE INDEX indeksi_nimi ON tabeli_nimi(veeru_nimi);
Näiteks, kui soovite lisada indeksi users
tabeli email
veerule, käivitage järgnev:CREATE INDEX idx_email ON users(email);
Indeksi eemaldamise meetod
Kasutamata indekseid saab eemaldada, et optimeerida INSERT- ja UPDATE-toimingute jõudlust. Eemaldamiseks kasutatakse DROP INDEX käsku.DROP INDEX indeksi_nimi ON tabeli_nimi;
Kasutamata indeksi näideteks on indeksid, mis on seatud veergudele, mida ei kasutata otsingutingimustes (WHERE-lause). Indeksi eemaldamisega on võimalik parandada andmete sisestamise ja värskendamise kiirust.5. EXPLAIN lauset kasutades indeksi jõudluse kontroll
MySQL-i EXPLAIN lause on kasulik, et kontrollida päringu täitmisplaani ja uurida, milline indeks on rakendatud. Sellega saab hinnata indeksi tõhusust ja vajadusel optimeerida.EXPLAIN lause põhiline kasutamine
EXPLAIN SELECT * FROM tabeli_nimi WHERE veeru_nimi = 'tingimus';
Selle käsu kasutamisel saab kontrollida, kas indeksit kasutatakse või toimub täiskaalal skaneerimine. Tulemuseks sisaldab järgmisi elemente:- type: päringu tüüp (ALL tähendab täiskaalal skaneerimist, INDEX tähendab indeksi kasutamist)
- possible_keys: päringu jaoks kasutatavate indeksite loend
- key: tegelikult kasutatava indeksi nimi
- rows: skaneeritavate ridade hinnanguline arv