MySQL LIMIT: descriere, sintaxă, exemple și recomandări
Alegerea unui anumit număr de înregistrări dintr-un set mare este o idee bună, dar atunci când setul este foarte mare, ideea de degradare a ideii apare. Selectarea mai multor înregistrări dintr-o anumită poziție creează o scădere reală a performanței: înainte de atingerea țintei, MySQL se uită la alte înregistrări, petrecând timp pe ea.
conținut
- Sintaxă limit
- Valorile mari ale limitei "o, r"
- Selectarea unei înregistrări unice
- Relații relaționale în mysql
- Volume mari și cache standard
- Organizarea paginării tabelului
- Cache propriu și conceptul de relevanță
- Sortare și alte operațiuni de vânzare cu ridicata
- Percepția naturală a informațiilor
- Obiecte de informare și asociații naturale
Formal limita MySQL poate funcționa de la începutul mesei sau de la sfârșitul acesteia. Eșantionul poate determina un anumit număr de înregistrări și poate începe de la o anumită poziție. Există întotdeauna un caz, adică debutul unei situații mai rele este posibil. De obicei, fluxul total de clienți determină un mod general de funcționare statistic, dar este necesar să se prevadă situații diferite, este o decizie serioasă în favoarea site-ului.
Sintaxă LIMIT
În sursele oficiale MySQL, sintaxa limită este indicată, așa cum este reprezentată în imaginea de mai jos, în contextul solicitărilor de selectare și ștergere.
Interogarea selectată oferă două numere: offsetul "O" și numărul "R", cererea de ștergere este scrisă într-un singur număr - numărul de înregistrări "R" pentru a fi șters.
Valorile mari ale limitei "O, R"
Limita MySQL: sintaxa permite selectarea valorilor prin orice schemă. Condiții de bază: „O“ - offset primele înregistrări selectate, „R“ - numărul de înregistrări selectate. Problema este că, în cazul în care „O“ = 9000, atunci înainte de a MySQL selecteaza 9001 inregistrare, va avea loc prima 9000. Dacă „R“ = 1000, pentru un eșantion total de „participa“ 10.000 de intrări.
MySQL selectați limita poate funcționa de la începutul mesei sau de la sfârșitul acesteia, în funcție de direcția de sortare a înregistrărilor asc / desc. Varianta muncii de la sfârșitul mesei nu este o soluție promițătoare, deși este dificil să se facă fără ea în anumite situații.
Designul, unde valoarea mare a lui "R" va fi de mică interes pentru dezvoltator și utilizator: Ștergerea MySQL limită. Și apoi nu în toate cazurile. În această construcție, sarcina principală de responsabilitate constă în condiția de a selecta (unde) înregistrările care trebuie șterse.
Pentru securitatea și controlul procesului de ștergere, dezvoltatorul este, de obicei, interesat de utilizarea mecanismului AJAX și de ștergerea înregistrărilor pe porțiuni mici. Cu un astfel de mecanism, vizitatorul site-ului nu va observa întârzierea în funcționarea constructului de ștergere.
Selectarea unei înregistrări unice
Clauza corectă și interogarea "limitei 1" a MySQL se execută imediat. Ștergerea sau selectarea unei înregistrări nu este întotdeauna o soluție bună. De obicei, selectarea eșantionului pentru toate înregistrările din tabel este utilizată pentru organizarea datelor bazate pe pagini (de exemplu, comentarii, articole, recenzii despre produse).
Decizia de a forma conținutul paginii web ar trebui să fie luate imediat, dar în utilizarea clasică MySQL limită O, R este selectat rapid doar primele zece înregistrări ale primelor sute, atunci întârzierea va începe.
În același timp, nu este atât de dificil, puteți alege rapid o înregistrare, dar a câștigat în detrimentul design și scriere logica de ieșire în browser-ul vizitatorului.
Nimic nu împiedică să o facă în mod eficient și să ascundă întârzierile fatale ale timpului din spatele dialogului de formare a conținutului.
Relații relaționale în MySQL
MySQL este un instrument excelent pentru prezentarea și prelucrarea informațiilor. Dezvoltatorul are la dispoziție un dialect calitativ al limbajului SQL și un mecanism convenabil pentru generarea de interogări. Sunt înregistrate erori și situații neprevăzute, accesul la date este gestionat până la nivelul operațiilor de bază.
Toate dezavantajele se referă la însăși conceptul relațiilor relaționale. Ce să facem, acest concept este atât de fundamental și de încredere încât nu rămâne, cum să țineți seama de caracteristicile sale și să le luați în considerare.
Nivelul actual de dezvoltare a implementării hardware a calității funcționale a tuturor instrumentelor MySQL (limita - fără excepție) asigură disponibilitatea unor cantități mari de date la viteze mari de operare, și cel mai important, proba.
Volume mari și cache standard
Tamponarea datelor înainte de scriere și după eșantionare este o idee excelentă, provenind din anii 80. Caching-ul a devenit la modă la toate nivelele procesării datelor de la procesor, la rețea, până la nivelul serverului http și al bazelor de date.
Dezvoltatorul poate contacta administratorul de server sau poate personaliza cache-ul la nivel de Apache și MySQL sau o altă combinație de software utilizată pentru a asigura funcționarea resursei web și a serverului MySQL.
Aceasta este o soluție normală, standard. În majoritatea cazurilor, este obișnuit să faceți acest lucru. În programare, ideea diviziunii muncii a fost mult timp în căutare. Dezvoltatorul face site-uri, administratorul gestionează activitatea a tot ceea ce asigură optimizarea utilizării site-ului.
În situațiile critice, atunci când tabelele de baze de date sunt mari, trebuie să plecați de la canoanele acceptate. Este necesar să se schimbe ceva în organizarea datelor.
Organizarea paginării tabelului
Dezvoltatorii sunt obișnuiți să: baza de date relațională - Acesta este un set de tabele care sunt interconectate între ele prin chei. O idee simplă, ca o masă reprezentată de o masă de pagini de același tip cu același nume, dar cu indicatori diferiți, depășește noțiunea obișnuită.
Dar ce este ciudat despre asta? Un tabel este un set de înregistrări care conțin diverse date în funcție de tipurile de câmpuri (coloane, antetul tabelului). Limita de interogare a interogării MySQL se referă la tabelul "big_info" și selectează c 100000 de elemente de 24 de linii pentru a fi afișate în browser.
În această decizie, 100024 de rânduri sunt implicate în eșantion - aceasta este lungă. Dar dacă schimbați situația și întreg tabelul „big_info“ vopsea câteva sute de mese „big_info [0 ... 999]“ de 1000 de înregistrări, problema apare doar „comanda * limita O, R“, atunci când vi se solicită MySQL, deoarece sortarea va fi extrem de este dificil.
Totuși, nu numai că sortarea, ci și orice altă operație pe toate înregistrările este imposibilă prin intermediul bazei de date de deasupra mesei, reprezentată de mai multe tabele. Indicele în acest context în MySQL lipsește.
Relațiile relaționale presupun claritate: există o bază, în tabele există tabele, coloane și coloane. Încă există "loțiuni": proceduri stocate, declanșatoare, condiții și alte detalii.
Cache propriu și conceptul de relevanță
Ideea de "Yandex" - "termovizolator" este o idee bună: harta termică a clicurilor paginilor web. Acest instrument prezintă în soluția de culoare spectrală răspândirea relevanței interesului vizitatorilor pe "teritoriul" paginii. Aparent, în curând va exista un nou subiect de școală - geografia paginii web: unde și ce să plasați. Un bun plus față de geografia generală ...
Această idee, amenajat pe o suprafață mare de înregistrări din tabelul bazei de date, ne permite să formuleze un punct de obiectiv: nu toate intrările teritoriu revendicat și nu întotdeauna.
Cu cât fluxul de vizitatori este mai mare, cu atât mai multe reguli sunt la nevoile eșantionului. Limita MySQL este întotdeauna executată exact și întotdeauna pentru un anumit motiv. Colectarea unor motive specifice nu va fi niciodată dificilă. Pentru a lega la fiecare motiv specific, rezultatul limitei MySQL în fiecare caz particular este o sarcină trivială.
Nu este o organizare de pagină a unui tabel în format de sute de pagini, ci un con de cerere de informații. Numai în cazuri fatale sau când intră pe pagina vizitatoare intensivă de informații, se colectează o cantitate mare de date. În modul normal - selectați filmele.
Cache-ul personalizat rezolvă problema vitezei într-un mod elementar: eșantionul trece prin cheia "motivul concret" dintr-o masă mică a rezultatelor ultimelor operațiuni de eșantionare dintr-o masă mare.
Sortare și alte operațiuni de vânzare cu ridicata
Problema cu cantități mari de date este limitată de performanța hardware-ului și a software-ului. Astăzi, a fost atins un nivel extraordinar de performanță, dar volumul de date a crescut de asemenea dramatic.
Atunci când viteza și calitatea drumurilor sunt în creștere, nevoia de mișcare rapidă și rezolvarea instantanee a problemelor cresc în mod adecvat.
O sortare simplă, adăugând o înregistrare sau căutând date, care afectează direct sau indirect toate înregistrările unei mese mari, este o frânare potențială, pierdere garantată a performanței.
Relațiile relaționale au deținut prea mult palmierul campionatului, dar nu intenționează să renunțe la această zi: pur și simplu nu este nimeni. Alte opțiuni de organizare a datelor care oferă navigare instantanee pe o cantitate mare de informații nu au apărut nici măcar la super-liderul industriei "Big Information" - Oracle. Dar Oracle a oferit o bună experiență și cunoștințe excelente în implementarea limbajului SQL și a dialectelor sale. Pe funcțional MySQL este a impus o amprentă specifică a calității.
Dezvoltatorul poate folosi în siguranță proiectarea limitelor MySQL pe un singur tabel de date și poate avea acces gratuit la operațiunile de vânzare cu ridicata de pe această masă mare.
Percepția naturală a informațiilor
percepe și procese Man, pentru cea mai mare parte inconștient, cantități uriașe de informații care nu sunt disponibile cele mai avansate instrumente de la Oracle. Dar poate că nu e foarte mândru de asta. Oracle poate migra astfel de volume de date și poate efectua o astfel de sortare, a cărei execuție va necesita mai mult de o viață umană și nu o sută de exemplare.
Toată lumea trebuie să-și facă propriul lucru și să o facă cât mai eficient posibil. Relațiile relaționale nu vor muri niciodată - ele sunt inerente datelor, ele sunt parte integrantă a acestora. Dar în punerea în aplicare a bazelor de date relațiile relaționale nu au o semantică. O organizație cheie, indici pentru accesarea înregistrărilor nu este sensul care oferă acces rapid la informații.
Mașini consistente de memorie și emularea unui acces asociativ la informație - adevăratul motiv pentru pierderea de timp la accesarea unui tabel de mare pentru un eșantion de informații, în conformitate cu integritatea sa pentru operațiunile de grup.
Obiecte de informare și asociații naturale
Designerul nu poate evita secvența în executarea operațiunilor. Deci lumea calculatorului este aranjată. Un computer are un procesor, iar opțiunile multi-core și multiprocesor nu sunt, totuși, o organizație neurală de procesare paralelă a informațiilor pe care le folosește gândirea umană.
Dezvoltarea algoritmului se adresează întotdeauna unui proces, chiar dacă este împărțit în mai multe fire. Programarea este încă la același nivel, chiar și atunci când codul este construit în forma unui sistem de obiecte care interacționează, ale căror instanțe funcționează singure.
Întrebarea nu este atât structura sistemelor informatice sub formă de obiecte independente, ci mai degrabă mediul care le asigură funcționarea. Mediul este consistent, nu paralel.
Creșterea numărului de nuclee și a numărului de procesoare într-un singur computer, tabletă sau alt dispozitiv nu le face asociative dispozitive de calcul.
Dar există încă o cale de ieșire: fiecare aplicație concretă este o problemă la care trebuie să găsiți un răspuns rapid. Trebuie să faceți o alegere rapidă (limita MySQL), cu restul funcționalității (ordinea MySQL după, grupați prin, intrați în cazul în care) nu vor fi afectate, masa nu va fi spart într-un număr de piese similare, și în procedura cache-ul va primi datele actualizate imediat după actualizare, și nu atunci când au primit un alt „motiv special“.
Limba SQL este o limbă bună, dar dacă adăugați asociații, va deveni și mai bună.
- MySQL este ceea ce și unde se aplică?
- Crearea unei baze de date MySQL face parte din orice site
- MySQL - ce este? Eroare MySQL
- MySQL selectați selectați: operatorul de eșantionare
- Folosind MySQL: inserați în
- MySQL - cererea în cerere. MySQL: exemple de interogări. Întrebări interogate MySQL
- MySQL - Comenzi pentru Windows Console
- "Capcane" de comenzi DML Actualizați MySQL
- MySQL JOIN: o descriere, un exemplu de utilizare a comenzii și recomandări
- Șterge instrucțiunea Șterge MySQL
- Practica de utilizare a funcției MySQL count
- Ștergerea duplicatelor MySQL
- Cum se utilizează în MySQL: timestamp și datetime
- Accesați rezultatele probelor prin intermediul matricei de preluare MySQL
- Gruparea înregistrărilor MySQL: grup de
- Selectați înregistrări unice în interogarea MySQL: selectați distinct
- Interogare SELECTARE MySQL. Descriere, aplicație și funcții
- Data și ora în MySQL: formatul datei, sortarea și localizarea
- Administrarea MySQL: cum să creați un utilizator și să-i stabiliți drepturile
- Replicarea MySQL. Excursie scurtă
- Tipuri de date de bază Mysql