Tallennetut menettelyt MySQL:ssä: täydellinen opas

Viimeisin päivitys: Toukokuuta 26 2025
Kirjoittaja: TecnoDigital
  • MySQL:n tallennetut proseduurit ryhmittelevät SQL-lausekkeita uudelleenkäytettäviksi yksiköiksi.
  • Ne parantavat suorituskykyä palvelimella suoritettaessa ja vähentävät verkkoliikennettä.
  • Ne mahdollistavat paremman turvallisuuden hallitsemalla pääsyä tietoihin tiettyjen käyttöoikeuksien avulla.
  • Ne helpottavat suorituskyvyn optimointia käyttämällä indeksejä ja välttämällä kursoreita.
Tallennetut menettelyt MySQL:ssä

Mitä tallennetaan MySQL:ssä?

MySQL:n tallennetut proseduurit ovat skriptien tai SQL-koodilohkojen sarjoja, jotka tallennetaan tietokantapalvelimelle ja suoritetaan kutsuttaessa. Ne ovat tehokas tapa ryhmitellä toisiinsa liittyviä SQL-lauseita yhdeksi, uudelleenkäytettäväksi, loogiseksi yksiköksi. Tallennetut proseduurit yksinkertaistavat ohjelmointilogiikkaa, parantavat suorituskykyä ja tehostavat tietokannan suojausta.

Tallennettujen menetelmien käytön edut

Tallennetut menettelyt tarjoavat lukuisia etuja sovelluskehityksessä ja tietokantojen hallinnassa. Jotkut tärkeimmistä eduista ovat:

  1. Modulaarisuus ja koodin uudelleenkäyttöTallennettujen toimintosarjojen avulla voit ryhmitellä toisiinsa liittyvät SQL-käskyt loogisiksi yksiköiksi, mikä helpottaa niiden uudelleenkäyttöä sovelluksen eri osissa. Tämä parantaa koodin ylläpidettävyyttä ja vähentää koodin päällekkäisyyttä.
  2. Parempi suorituskyky: Kun suoritetaan tietokantapalvelin Tietojen tallennusta varten tallennetuilla proseduureilla vältetään tarvetta lähettää useita kyselyitä asiakassovelluksesta. Tämä vähentää verkkoliikennettä ja parantaa sovellusten yleistä suorituskykyä.
  3. turvallisuusTallennettujen toimenpiteiden avulla voidaan hallita pääsyä tietoihin ja valvoa tiettyjä turvallisuussääntöjä. Tallennettujen menettelyjen suoritusoikeudet voidaan määrittää käyttäjärooleille, mikä tarjoaa lisäsuojaustasoa.
  4. virheiden vähentäminenKapseloimalla ohjelmointilogiikan tallennettuihin proseduureihin vähennät mahdollisuutta tehdä virheitä sovelluksessasi. Tämä johtuu siitä, että tallennetut proseduurit testataan ja vianetsintään kerran, minkä jälkeen useat sovellukset voivat käyttää niitä muuttamatta lähdekoodia.

Tallennettujen menetelmien luominen

Tallennettujen proseduurien luominen MySQL:ssä on suhteellisen yksinkertainen prosessi. Tallennetun proseduurin luomiseen käytetään käskyä CREATE PROCEDURE. Alla on perusesimerkki tallennetun proseduurin luomisesta, joka näyttää kaikki tietueet taulukossa:

  MySQL vs. MariaDB: First Cousinsin kaksintaistelu

LUO PROSEDURE sp_show_records()
ALKAA
VALITSE * FROM-taulukko;
END

Tässä esimerkissä sp_mostrar_registros on tallennetun toimintosarjan nimi. Lohko BEGIN y END määrittelee proseduurin rungon, joka tässä tapauksessa koostuu yksinkertaisesta kyselystä SELECT näyttää kaikki tietueet taulukossa nimeltä "taulukko".

Parametrit tallennetuissa menettelyissä

Tallennetut proseduurit voivat hyväksyä parametreja, jolloin ne voivat vastaanottaa ulkoisia arvoja suorituksen aikana. Parametrit määritellään proseduurin määrittelyssä ja niitä käytetään proseduurin rungossa. Seuraava on esimerkki tallennetusta proseduurista, joka hyväksyy kaksi parametria ja suorittaa ehdollisen kyselyn :

CREATE PROCEDURE sp_search_product(IN nimi VARCHAR(50), IN hinta DECIMAL(8,2))
ALKAA
SELECT * FROM tuotteet WHERE nimi LIKE CONCAT('%', nimi, '%') AND hinta <= hinta;
END

Tässä esimerkissä tallennettu menettely sp_buscar_producto hyväksyy kaksi parametria: nombre y precio. Konsultaatio SELECT Käytä näitä parametreja menettelyn rungossa suodattaaksesi tietueita "tuotteet" -taulukossa osittaisen nimen ja enimmäishinnan perusteella.

Paikalliset muuttujat ja virtauksen ohjaus

MySQL:ssä tallennetut menettelyt voivat käyttää paikallisia muuttujia ja vuonohjausrakenteita, kuten ehdollisia ja silmukoita. Tämä mahdollistaa monimutkaisemmat ja ehdolliset toiminnot tallennetuissa proseduureissa. Alla on esimerkki tallennetusta menettelystä, joka käyttää muuttujia ja vuonohjausta:

LUO MENETTELY sp_actualizar_stock(IN producto_id INT, IN cantidad INT)
ALKAA
ILMOITUS varasto_todellinen INT;

SELECT varasto INTO nykyinen_varasto FROM tuotteet WHERE id = tuote_id;

JOS todellinen_varasto >= määrä NIIN
PÄIVITYS tuotteet SET varasto = varasto – määrä WHERE id = tuote_id;
ELSE
SELECT 'Varastossa ei ole riittävästi varastoa' AS-viesti;
LOPPU JOS;
END

Tässä esimerkissä tallennettu menettely sp_actualizar_stock ottaa kaksi parametria: producto_id y cantidad. Käyttää paikallista muuttujaa nimeltä stock_actual tallentaa tuotteen nykyisen varastoarvon. Käytä sitten ohjausrakennetta IF tarkistaa, onko varastoa riittävästi ja tehdä päivitys "tuotteet" -taulukkoon tai muuten näyttää virheilmoitus.

Toiminnot tallennetuissa menettelyissä

SQL-kyselyiden suorittamisen lisäksi MySQL:n tallennetut proseduurit voivat sisältää myös funktioita . Funktioiden avulla voit suorittaa laskutoimituksia ja palauttaa arvoja pelkän kyselytulosten näyttämisen sijaan. Alla on esimerkki tallennetusta proseduurista, joka käyttää funktiota tilauksen kokonaishinnan laskemiseen:

  MySQL PHP-kyselyt esimerkein

CREATE FUNCTION fn_calculate_total_price(tilaustunnus INT) PALAUTTAA DECIMAL(8,2)
ALKAA
DECLARE yhteensä DECIMAL(8,2);

SELECT SUM(hinta * määrä) INTO yhteensä FROM tilaustiedot WHERE tilaustunnus = tilaustunnus;

PALAUTUS yhteensä;
END

Tässä esimerkissä tallennettu toimintosarja sisältää funktion nimeltä fn_calcular_precio_total joka hyväksyy parametrin pedido_id ja palauttaa tilauksen kokonaishinnan. Funktio käyttää paikallista muuttujaa total tallentaaksesi laskutoimituksen tuloksen ja palauttaaksesi sen lausekkeen avulla RETURN.

Ennalta määritetyt tallennetut menettelyt

MySQL tarjoaa useita valmiiksi määriteltyjä tallennettuja proseduureja, jotka kattavat laajan valikoiman yleisiä tehtäviä. Näitä tallennettuja proseduureja voidaan käyttää suoraan tietokannoissa ilman lisäkoodin kirjoittamista. Joitakin yleisimmin käytettyjä valmiiksi määriteltyjä tallennettuja proseduureja ovat:

  • COUNT(): Palauttaa määritettyä ehtoa vastaavien rivien määrän.
  • SUM(): Laskee määritetyn sarakkeen arvojen summan.
  • AVG(): Laskee määritetyn sarakkeen arvojen keskiarvon.
  • MAX(): Palauttaa enimmäisarvon määritetyssä sarakkeessa.
  • MIN(): Palauttaa vähimmäisarvon määritetyssä sarakkeessa.

Nämä ennalta määritetyt tallennetut menettelyt ovat erittäin optimoituja ja tarjoavat paremman suorituskyvyn verrattuna vastaavien SQL-kyselyjen kirjoittamiseen tyhjästä.

Suojaus- ja suoritusoikeudet

MySQL:ssä tallennettujen proseduurien suoritusoikeudet voidaan määrittää käyttäjärooleille. Tämä antaa sinulle mahdollisuuden hallita tallennettujen proseduurien käyttöoikeuksia ja suojata tietojen eheyttä ja turvallisuutta . Suoritusoikeuksia hallitaan MySQL:n käyttäjä- ja käyttöoikeuksien hallintajärjestelmän kautta.

On tärkeää määrittää tallennetuille proseduureille suoritusoikeudet asianmukaisesti luvattoman käytön estämiseksi ja tietojen luottamuksellisuuden varmistamiseksi. Tietokannan ylläpitäjien tulisi määrittää suoritusoikeudet rajoittavasti ja tarkistaa käyttäjien oikeudet säännöllisesti turvallisen ympäristön ylläpitämiseksi.

Tallennettujen toimintojen optimointi

Optimaalisen suorituskyvyn varmistamiseksi on tärkeää optimoida tallennetut menettelyt MySQL:ssä. Joitakin yleisiä optimointitekniikoita ovat:

  1. Indeksien käyttö: Tallennettujen menettelyjen kyselyissä käytettyjen sarakkeiden indeksit voivat parantaa merkittävästi suorituskykyä. Indeksit nopeuttavat tietojen hakua ja hakua vähentämällä tallennettujen toimintojen suoritusaikaa.
  2. Rajoita kursoreiden käyttöä: Liiallinen kohdistinten käyttö voi vaikuttaa negatiivisesti tallennettujen toimintojen suorituskykyyn. Sen sijaan on suositeltavaa käyttää set-operaatioita, kuten JOIN y GROUP BY manipuloida tietoja sen sijaan, että selaa rivejä yksitellen.
  3. Vältä alikyselyiden liiallista käyttöä: Alakyselyt voivat olla hyödyllisiä tietyissä tilanteissa, mutta niiden liiallinen käyttö voi johtaa huonoon suorituskykyyn. Sen sijaan on suositeltavaa käyttää JOIN y GROUP BY yhdistää ja käsitellä tietoja tehokkaasti.
  4. Suorita testit ja säädöt: On tärkeää suorittaa perusteellinen suorituskykytestaus ja virittää tallennettuja toimenpiteitä tarpeen mukaan. Tämä tarkoittaa pullonkaulojen tunnistamista, suoritusaikojen mittaamista ja muutosten tekemistä menettelyn suunnitteluun tai logiikkaan suorituskyvyn parantamiseksi.
  Tietokantaelementit: 10 olennaista komponenttia

Johtopäätös

Yhteenvetona voidaan todeta, että MySQL:ään tallennetut menettelyt ovat tehokas työkalu ohjelmointilogiikkaa yksinkertaistamaan, suorituskykyä ja turvallisuutta lisäämään sovelluskehityksessä ja tietokantojen hallinnassa. Ne mahdollistavat liittyvien SQL-lauseiden ryhmittelyn loogiseen ja uudelleen käytettävään yksikköön, mikä tarjoaa etuja, kuten modulaarisuuden, koodin uudelleenkäytön, paremman suorituskyvyn ja turvallisuuden.

Tallennettujen menettelyjen luominen MySQL:ssä on yksinkertaista käskyn avulla CREATE PROCEDUREja voi hyväksyä parametreja mukautuakseen erilaisiin skenaarioihin. Lisäksi tallennetut prosessit voivat sisältää paikallisia muuttujia, vuonohjausta ja toimintoja, mikä tekee niistä entistä joustavampia ja tehokkaampia.

On tärkeää optimoida tallennetut toiminnot käyttämällä tekniikoita, kuten indeksien käyttöä, kursoreiden ja alikyselyiden käyttöä ja laajaa suorituskykytestausta. Tämä varmistaa optimaalisen suorituskyvyn ja tehokkaan käyttökokemuksen loppukäyttäjille.

Yhteenvetona voidaan todeta, että MySQL:ään tallennetut menettelyt ovat arvokas työkalu kehittäjille ja tietokannan ylläpitäjille, ja niiden oikea toteutus ja optimointi voivat vaikuttaa sovellusten ja tietokantajärjestelmien suorituskykyyn ja turvallisuuteen.

Tallennetut menettelyt MySQL:ssä
Aiheeseen liittyvä artikkeli:
Tallennetut menettelyt MySQL:ssä: kuinka niitä käytetään?