✅ WEB ja WordPressi uudised, teemad, pistikprogrammid. Siin jagame näpunäiteid ja parimaid veebisaidi lahendusi.

22 MySQL-i parimat tava, mida arendajana 2019. aastal järgida

26

MySQL on maailmas populaarsuselt teine ​​avatud lähtekoodiga relatsioonilise andmebaasi haldussüsteem. Seda kasutatakse kogu maailmas selle püsivalt kiire jõudluse, kõrge töökindluse ja kasutuslihtsuse tõttu. See artikkel tutvustab mõningaid MySQL-i parimaid tavasid.

Nende abil saate harjutada SQL-i ja seada endale SQL-i harjutusi, õppida tundma SQL-i limiiti ja SQL-i praktikat veebis, aga ka kõige levinumaid SQL-i harjutamise probleeme.

See aitab teil mõista reanumbri SQL-i, SQL-i tippu, MySQL-i piirangunihet ja SQL-i võrgupraktikat.

Kui otsite kena ja lihtsat viisi suure hulga ridade ja veergude kuvamiseks oma WordPressi veebisaidi külastajatele värviliste, informatiivsete ja tundlike interaktiivsete tabelite ja diagrammidega, saate seda kasutada pistikprogrammiga wpDataTables, kontrollida hindu ja kõiki funktsioonid, mida see siin pakub .

1 Kasutage alati õiget andmetüüpi

Üks olulisemaid MySQL-i parimaid tavasid on andmetüüpide kasutamine andmete olemusest lähtuvalt. Ebaoluliste andmetüüpide kasutamine võib kulutada rohkem ruumi või põhjustada vigu.

Näiteks: varchari (20) kasutamine andmetüübi DATETIME asemel kuupäeva ja kellaaja väärtuste salvestamiseks põhjustab kuupäeva ja kellaajaga seotud arvutustes vigu. Samuti on võimalik, et salvestatakse kehtetuid andmeid.

2 Kasutage CHAR (1) asemel VARCHAR (1)

VARCHAR (1) võtab teabe salvestamiseks lisabaite, nii et kui sisestate ühe märgi, on parem kasutada CHAR (1).

3 Kasutage andmetüüpi CHAR ainult fikseeritud pikkusega andmete salvestamiseks

Näiteks: kui andmete pikkus on alla 1000, kulub varchari (1000) asemel char (1000) rohkem ruumi.

4 Vältige piirkondlike kuupäevavormingute kasutamist

Kui kasutate andmetüüpi DATETIME või DATE, kasutage alati oma SQL-mootori jaoks sobivat kuupäevavormingut YYYY-MM-DD või ISO kuupäevavormingut. Piirkondlikke vorminguid, nagu PP-KK-AAAA või KK-PP-AAAA, ei salvestata õigesti.

5 Indeksi võtme veergu

On soovitav, et päring tagastaks tulemuse kiiresti, seega veenduge, et indekseeriksite veerud, mida kasutatakse JOIN-klauslites.

Kui kasutate käsku UPDATE, mis hõlmab rohkem kui ühte tabelit, indekseerige kindlasti kõik veerud, mida tabelite ühendamiseks kasutatakse.

6 Ärge kasutage funktsioone indekseeritud veergude kohal…

… sest siis kaotab indeks oma eesmärgi.

Oletagem näiteks, et soovite saada andmeid, kus kliendikoodi kaks esimest tähemärki on AK. Kirjutage:

SELECT columns FROM table WHERE customer_code like 'AK%'

ja ei kirjuta

SELECT columns FROM table WHERE left (customer_code,2)='AK’

Miks? Esimene näide kasutab indeksit, mille tulemuseks on kiirem reageerimisaeg.

7 Kasutage SQL SELECT * ainult vajaduse korral

Järgides MySQL-i parimate tavade loendit, ärge kasutage koodis ainult pimesi SELECT *. Kui tabelis on palju veerge, tagastatakse kõik. See aeglustab reageerimisaega, eriti kui saadate tulemuse esiotsa rakendusse.

Selle asemel tippige selgesõnaliselt välja veergude nimed, mida tegelikult vaja on.

Märkus. Pidage meeles, et kõik SELECT-laused nõuavad WHERE-klauslit.

8 Kasutage punkti ORDER BY ainult vajaduse korral

Kui soovite tulemust esiotsa rakenduses näidata, laske sellel tulemuskomplekt TELLIDA. Kui teete seda SQL-is, võib mitme kasutajaga keskkonnas reageerimisaeg aeglustuda.

9 Valige sobiv andmebaasimootor

Kui arendate rakendust, mis loeb andmeid sagedamini kui kirjutab (nt otsingumootor), valige MyISAM salvestusmootor.

Vale salvestusmootori valimine mõjutab jõudlust.

10 Kasutage EXISTS-klauslit kõikjal, kus vaja

Andmete olemasolu kontrollimiseks kasuta EXISTS-klauslit, mis on kiirem reageerimisajaga. Näiteks kasutage:

If EXISTS(SELECT * from Table WHERE col=’some value’)

Ära kasuta :

If (SELECT count(*) from Table WHERE col=’some value’)>0

11 SELETAGE oma SELECT päringuid

Kui kasutate märksõna EXPLAIN, saate ülevaate sellest, mida MySQL teie päringu täitmiseks teeb. See võib aidata teil tuvastada probleeme päringu või tabelistruktuuridega (nt kitsaskohad).

EXPLAIN päring näitab teile, milliseid indekseid kasutatakse, kuidas tabelit skannitakse, sorteeritakse jne.

Kõik, mida pead tegema, on lisada SELECT päringu ette (soovitavalt kompleksne koos liitumistega) märksõna EXPLAIN. Samuti, kui kasutate selleks phpmyadminit, kuvatakse teie tulemused ilusas tabelis.

12 Unikaalse rea hankimisel kasutage LIMIT 1

Mõnikord teate tabelite päringute tegemisel ette, et otsite ainult ühte rida. Näiteks võite hankida unikaalset kirjet või lihtsalt kontrollida suvalise arvu kirjete olemasolu, mis vastavad teie WHERE-klauslile.

Sellistel juhtudel soovite jõudluse suurendamiseks kasutada MySQL-i limiitfunktsiooni. Siin on veel üks MySQL-i parimaid tavasid: lihtsalt lisage oma päringule LIMIT 1. Nii ei pea andmebaasimootor läbima tervet tabelit või indeksit. See lõpetab skannimise, kui leiab vaid 1 kirje selle kohta, mida otsite.

// do I have anyusersfrom Alabama?

// mida MITTE teha:
$r = mysql_query(“SELECT * FROM user WHERE state = ‘Alabama’");
if (mysql_num_rows($r) > 0) {
// …
}

// palju parem:
$r = mysql_query("SELECT 1 FROM user WHERE state = ‘Alabama’ LIMIT 1");
if (mysql_num_rows($r) > 0) {
// …
}

13 Indekseerige ja kasutage ühenduste jaoks samu veerutüüpe

Veel üks oluline näpunäide MySQL-i parimate tavade kohta – kui teie rakendusel on palju JOIN-päringuid, veenduge, et veerud, millega liitute, oleksid mõlemas tabelis indekseeritud. See mõjutab MySQL-i ühendamise operatsiooni sisemist optimeerimist.

Samuti peavad ühendatud veerud olema sama tüüpi. Näiteks kui ühendate veeru DECIMAL INT veeruga teisest tabelist, ei saa MySQL kasutada ühtegi indeksit. Isegi stringitüüpi veergude märgikodeeringud peavad olema sama tüüpi.

// looking for companies in my state $r = mysql_query("SELECT company_name FROM users LEFT JOIN companies ON (users.state = companies.state) WHERE users.id = $user_id");

// mõlemad olekuveerud peaksid olema indekseeritud
// ja mõlemad peaksid olema sama tüüpi ja sama märgikodeeringuga
// või MySQL võib teha täistabeli kontrolli

14 Peida MySQL Internetist

Kogenud andmebaasiadministraatorid ja turvatöötajad teavad seda – ärge kunagi hostige andmebaasi veebiserveri juure all.

Veebirakenduste puhul peaks MySQL olema peidetud tulemüüri taha. Side peaks olema lubatud ainult rakendusserverite ja teie veebiserverite vahel.

Teine võimalus on kasutada MySQL-i vahelejätmise võrku. Kui see on lubatud, kuulab MySQL ainult kohalikke pesaühendusi ja ignoreerib kõiki TCP-porte.

15 Kasutage väikseimaid võimalikke andmetüüpe

22 MySQL-i parimat tava, mida arendajana 2019. aastal järgida

Las ma räägin teile ühe loo. Kui ma ülikoolis käisin, oli filosoofia, et "mälu on vähe". Need olid 256 MB kõvaketaste ajad. Tänapäeval ei näi mälu ega kõvakettaruum enam kedagi hoolivat. Uus filosoofia on, et "mälu on odav". Dollarites võib see tõsi olla, kuid suurte andmetüüpide lugemine võtab siiski kauem aega kui väiksemate lugemine. Suured andmetüübid nõuavad mällu lugemiseks rohkem ketta sektoreid.

Moraal on see, et eirake tabelite kujundamisel kiusatust hüpata kohe suurima andmetüübi juurde. Mõelge, kas kasutada bigint asemel int.

Samuti vältige bigchar (255) tekstivälju, kui piisab varcharist või väiksemast tähemärgist.

Kui kasutate õiget andmetüüpi, mahub mällu või registrivõtmeplokki rohkem kirjeid. See toob kaasa vähem lugemisi ja kiirema jõudluse.

16 Kasutage päringu vahemällu salvestamise eeliseid

Päringu vahemällu salvestamine on üks tõhusamaid meetodeid jõudluse parandamiseks. Enamikul MySQL-serveritel on see vaikimisi lubatud.

Päringu vahemälu salvestab SELECT-lause teksti koos vastava tulemusekomplektiga. Kui server saab hiljem identse avalduse, hangib ta tulemused päringu vahemälust, selle asemel et seda lauset uuesti sõeluda ja käivitada. Päringu vahemälu jagatakse seansside vahel, nii et ühe kliendi genereeritud tulemuste komplekti saab saata vastuseks teise kliendi samale päringule.

Kuid nii hea kui see ka pole, on päringute vahemällu salvestamisel oma piirangud. Võtke järgmine avaldus:

Probleem on selles, et päringud sisaldavad teatud mittedeterministlikke funktsioone, nagu NOW() ja RAND(). MySQL ei saa selliseid funktsioone ette arvutada, mistõttu neid ei salvestata vahemällu.

Õnneks on sellele lihtne lahendus: funktsiooni tulemused saab salvestada muutujasse.

17 Ärge redigeerige tõmmisfaile

Prügifailid on väga petlikud ja võivad põhjustada korruptsiooni. Miks? Kui olete kunagi näinud mysqldumpi loodud dump-faile, nõustute, et need näevad välja nagu tavalised kahjutud tekstifailid. Seetõttu redigeerib enamik inimesi neid standardses tekstiredaktoris, mis põhjustab kahjustusi.

Kui olete kunagi proovinud prügifaile redigeerida, õppisite kiiresti, et need on kõike muud kui tekstifail. Seega on ainus garanteeritud viis probleemide vältimiseks jätta tõmmisfailid rahule.

18 Kasutage MyISAM-i ploki suuruse sätet

22 MySQL-i parimat tava, mida arendajana 2019. aastal järgida

Plokkide suuruse määramine MyISAM-i tabelite indeksites on üks MySQL-i parimatest tavadest. Selle leiate võtmepuhvris olevates .MYI-failides ja ka plaadilt. Seade näeb välja selline: myisam_block_size.

Selle vaikeväärtus on 1k. See on üsna väike, et olla kaasaegses süsteemis optimaalne. Enamikus failisüsteemides kasutatakse suuremaid plokke. Ja me teame, et ühe registriploki kirjutamine nõuab lugemist ja seejärel kirjutamist. Operatsioonisüsteem ei pea kunagi kirjutama aluseks olevale kettale, kui ploki suurus on võrdne failisüsteemi ploki suurusega või sellest suurem.

19 Lülitage funktsioon delay_key_write sisse

Delay_key_write on vaikimisi VÄLJA lülitatud. Sellel on põhjust. Kui teil tekkis projekti keskel krahh, võib teie andmebaas rikkuda.

Niisiis, miks soovite selle sisse lülitada? Põhjus on lihtne. Kuna delay_key_write tagab, et andmebaas ei loputa MyISAM-i võtmefaili pärast iga kirjutamist. Seega, kui teete lähitulevikus uue kirjutamise, säästate üsna palju aega.

Siin on veel üks lahe näpunäide, mille valisime MySQL-i parimate tavade hulgast. Funktsiooni delay_key_write sisselülitamine on iga versiooni puhul erinev. Et näha, kuidas see konkreetses versioonis sisse lülitada, vaadake ametlikku MySQL-i saidi juhendit.

20 Vigade eraldamiseks kasutage Stack Trace’i

Järgides neid MySQL-i parimaid tavasid, on see näpunäide laenatud Sky SQL-ist, kuna see on lihtsalt liiga lihtne ja liiga mugav, et seda välja jätta.

MySQL-i stack_trace’i saab kasutada erinevate vigade eraldamiseks. Selle asemel, et uurida kõiki võimalikke kasutusviise, võiks programmeerija arvestada sellega, kui kergesti võib nullkursor teie koodi rikkuda.

Selle Sky SQL-i näpunäidetega muutub tuvastamine, jälgimine ja parandamine palju lihtsamaks.

21 MySQL ROOT-parooli muutmine

ROOT-parooli muutmine võib tunduda elementaarne, kuid teadmine, kuidas seda teha, on sama oluline nii teie koduse operatsioonisüsteemi kui ka MySQL-i serverite jaoks.

Mõnikord juhtub, et liiga innukad algajad ja hajameelsed kogenud kasutajad ei saa aru, miks nad ei saa teatud seadeid muuta ja tagastavad vead. See võib olla sama lihtne kui anda endale ROOT-juurdepääs. Kasutaja ei peaks seda isegi googeldama.

Siin on, kuidas seadistada ROOT-parool ja kuidas muuta kasutaja ROOT-parooli:

//Straightforward MySQL 101 $mysqladmin -u rootpassword [Type in selectedpassword] //Changingusers ROOT password $mysqladmin -u root -p [type oldpassword] newpass [hit enter and type new password. Pressenter] //Use mysqlsqlcommand $mysql -u root -p //prompt "mysql>" pops up. Enter: $use MySQL; //Enter usernameyouwant to change the password for $update user set password=PASSWORD (Type new PasswordHere) where User = 'username'; //Don'tforget the previoussemicolon, nowreload the settings for the user'sprivileges $flush privileges; $quit

22 Parandage oma konfiguratsioonifailid

22 MySQL-i parimat tava, mida arendajana 2019. aastal järgida

MySQL Tuner on Perli skript, mis võib teie toimivust kuidagi optimeerida, soovitades konfiguratsioonifailides muudatusi.

Kui mõned MySQL-i näpunäited ja nipid on hämmastavalt mugavad, on sellised tööriistad nagu MySQL Tuner jumala kingitus, mis väärib kuulumist oma kategooriasse.

See on midagi, mida saavad kasutada nii algajad kui ka profid. MySQL Tuner ei ole MySQL-i jaoks spetsiifiline näpunäide, seega saab rakendada mitmesuguseid näpunäiteid ja modifikatsioone. Mida rohkem te seda kasutate, seda rohkem näpunäiteid saate õppida enda tarbeks rakendama.

Esmapilgul võib see tunduda hirmutav, kuid just seetõttu leiate projekti ametlikult kodulehelt manuaali –man db ja kõik märkmed, vajaliku lugemise ja seaded. Kõige selle juures peaks MySQL Tunerist kiiresti saama teie peamine tööriist MySQL-i kiirendamiseks ja konfiguratsioonifailide testimiseks.

Mõtted MySQL-i parimate tavade kohta

Arvutiteaduse maailmas on MySQL kahtlemata üks tähtsamaid ja mõjukamaid programme, mis kunagi ilmunud on. See on nii kaasahaarav ja mitmekülgne, et just siis, kui tundub, et kõik võimalikud nipid ja otseteed on avastatud, annab keegi teine ​​uue argumendi või seadistuse uue võimaluse kasutada.

Oleme välja toonud ainult MySQL-i parimad tavad, mida kõik peaksid teadma. Kuid mida rohkem te MySQL-i kasutate, seda rohkem te neid kasutate. Saate SQL-i veebis harjutada ja endale SQL-teste seada. Seejärel töötate välja oma nipid ja leiate oma parimad näpunäited, millele saate tugineda, näiteks SQL-i piiramine, SQL-i rea number, ja mõistate, miks peaksite MySQL-i valima.

Kui teile meeldis lugeda seda MySQL-i parimaid tavasid käsitlevat artiklit, peaksite lugema ka järgmist.

See veebisait kasutab teie kasutuskogemuse parandamiseks küpsiseid. Eeldame, et olete sellega rahul, kuid saate soovi korral loobuda. Nõustu Loe rohkem