SQL-tietokanta on erittäin helppokäyttöinen ja käyttäjäystävällinen, sillä komennoilla on yksinkertainen syntaksi. Mutta sitten SQL-komennon tehokkuus on riippuvainen eri tietokantatoiminnoista, erityisesti niiden yksilöllisestä laskentaajasta. Kielen tehokkuus ei myöskään tarkoita, että kielen optimointi olisi myös helpompaa. Jokainen tietokanta vaatii yksilöllisiä viritystapoja sen yksilöllisten tarpeiden mukaan.
Sentähden parhaan SQL-tietokannan käyttäminen on suositeltavaa, samoin kuin erilaisten tapojen tunteminen tietokannan optimoimiseksi tai tehostamiseksi, jotta siitä saataisiin paras mahdollinen suorituskyky. SQL-tietokannan optimoinnin laajuus kehittäjille, kuten vaikkapa vanhemmille Java j2ee -kehittäjille, eroaa tietokannan ylläpitäjän (DBA) työstä joiltakin osin ja on samankaltaista toisilta osin. Suurissa yrityksissä kehittäjät ja DBA:t joutuvat usein työskentelemään yhdessä, ja on havaittu, että näiden kahden tiimin välille syntyy usein ristiriitoja. SQL-tietokantoja voidaan virittää eri tavoin.
- NEXT GENERATION DEVOPS: VALUE STREAM MANAGEMENT
- HOW TO GROW YOUR SERVERLESS TEAM
- MLOPS: CONTINUOUS DELIVERY OF MACHINE LEARNING SYSTEMS
- Tarkoituksenmukainen indeksointi
- KATSO LISÄÄ: Vuoden 2017 parhaat tietokannat: Trends for SQL, NoSQL, Big Data, Fast Data
- Hae vain olennaiset tiedot
- Korreloituneista alakyselyistä eroon pääseminen
- KATSO LISÄÄ: Team MySQL vastaan Team PostgreSQL: Nämä yritykset panostavat niihin
- Väliaikaisten taulukoiden käyttäminen tai välttäminen tarpeen mukaan
- Välttää koodaussilmukoita
- Toteutussuunnitelmat
NEXT GENERATION DEVOPS: VALUE STREAM MANAGEMENT
Helen Beal (DevOps Institute.)
HOW TO GROW YOUR SERVERLESS TEAM
Sheen Brisals (The LEGO Group)
MLOPS: CONTINUOUS DELIVERY OF MACHINE LEARNING SYSTEMS
Hauke Brammer (finpair GmbH)
Tarkoituksenmukainen indeksointi
Index on periaatteessa tietorakenne, joka auttaa nopeuttamaan tiedonhakuprosessia kokonaisuudessaan. Yksilöllinen indeksi on eräänlainen indeksointi, joka luo erillisiä datasarakkeita ilman päällekkäisyyksiä. Kunnollinen indeksointi takaa nopeamman pääsyn tietokantaan. Liiallinen indeksointi tai indeksoinnin puuttuminen kokonaan ovat molemmat väärin. Ilman minkäänlaista indeksointia käsittely on hyvin hidasta, kun taas kaiken indeksointi tekee lisäys- ja päivitystriggerit tehottomiksi.
KATSO LISÄÄ: Vuoden 2017 parhaat tietokannat: Trends for SQL, NoSQL, Big Data, Fast Data
Hae vain olennaiset tiedot
Tarvittavien tietojen määrittely mahdollistaa tarkan haun. Komentojen *
ja LIMIT
käyttäminen SELECT *
:n sijasta tarpeen mukaan on hyvä tapa virittää tietokantaa ja samalla välttää koko datajoukon hakeminen, kun käyttäjä haluaa vain tietyn osan siitä. Se ei tietenkään ole tarpeen, kun tietojen kokonaismäärä on pienempi. Mutta kun tietoja haetaan suuresta lähteestä, tarvittavien osien määrittäminen säästäisi paljon olennaista aikaa.
Komento *
on tarkoitettu käytettäväksi sarakkeiden tietojen määrittelyyn, ja komento LIMIT
on tarkoitettu silloin, kun käyttäjä tarvitsee tietoja tietystä määrästä rivejä erän joukosta. Säästeliäs valinta ei ole aivan välttämätön sääntö. Se auttaa kuitenkin välttämään järjestelmävirheitä tulevaisuudessa. Lisäksi tietojen rajoittaminen ja täsmentäminen vähentää suuresti tietokannan optimoinnin jatkotarvetta.
Korreloituneista alakyselyistä eroon pääseminen
Korreloitunut alakysely on periaatteessa riippuvainen vanhemmasta tai ulommasta kyselystä. Tällainen haku tehdään rivi riviltä. Se tarkoittaa, että se vähentää prosessin kokonaisnopeutta. Ongelma johtuu yleensä ulomman kyselyn WHERE
-komennosta, jota soveltaen alakysely suoritetaan jokaiselle vanhemman kyselyn palauttamalle riville, mikä hidastaa koko prosessia ja vähentää tietokannan tehokkuutta. Parempi tapa virittää tietokanta on siis tässä tapauksessa käyttää komentoa INNER JOIN
korreloivan alakyselyn sijasta. Tietyissä tapauksissa korreloivan alakyselyn käyttö on kuitenkin välttämätöntä.
KATSO LISÄÄ: Team MySQL vastaan Team PostgreSQL: Nämä yritykset panostavat niihin
Väliaikaisten taulukoiden käyttäminen tai välttäminen tarpeen mukaan
Jos mikä tahansa koodi voidaan kirjoittaa hyvin yksinkertaisella tavalla, siitä ei missään nimessä tarvitse tehdä monimutkaista väliaikaisilla taulukoilla. Tietenkin, jos aineistoon on laadittava erityinen menettely, joka vaatii useita kyselyjä, väliaikaisten taulukoiden käyttö on tällaisissa tapauksissa itse asiassa suositeltavaa. Väliaikaisia taulukoita vuorottelevat usein alakyselyt, mutta on pidettävä mielessä se erityinen tehokkuus, jonka kukin näistä tarjoaisi erillisissä tapauksissa.
Välttää koodaussilmukoita
Koodaussilmukoiden välttäminen on erittäin tarpeellista, jotta vältetään koko jakson hidastuminen. Tämä voidaan saavuttaa käyttämällä yksilöllisiä UPDATE
– tai INSERT
-komentoja yksittäisten rivien kanssa ja varmistamalla, että komento WHERE
ei päivitä tallennettuja tietoja, jos se löytää vastaavaa jo olemassa olevaa tietoa.
Toteutussuunnitelmat
Toteutussuunnitelmatyökalulla, jonka optimoija luo, on suuri merkitys SQL-tietokantojen virittämisessä. Ne auttavat myös oikeiden indeksien luomisessa. Tosin sen päätehtävänä on näyttää graafisesti eri tiedonhakumenetelmät. Tämä puolestaan auttaa tarvittavien indeksien luomisessa ja muiden tarvittavien vaiheiden toteuttamisessa tietokannan optimoimiseksi.
Tietenkin on olemassa valtavasti muitakin tapoja, joilla SQL-tietokantaa voidaan virittää mahdollisimman tehokkaasti. On myös suuri mahdollisuus, että edellä mainitut vaiheet eivät välttämättä ole oikea valinta kaikille tietokannoille. Jokainen tietokanta vaatii optimointitekniikoita, jotka ovat ainutlaatuisesti sen tarpeisiin sopivia.