Fiecare programator care a trebuit să lucreze cu baze de date cu care se confruntă operatorii DML (per. cu engleza. - "limbaj de manipulare a datelor"), cum ar fi selecta, Inserare, șterge și Actualizare. Mediul MySQL utilizează, de asemenea, toate comenzile de mai sus în arsenalul său.
Acești operatori vorbesc în mod logic despre eiscop - selectați înregistrările, introduceți noi valori, actualizați datele existente, complete sau în funcție de condițiile specificate, ștergeți informațiile din baza de date. Predarea materialelor teoretice descrie în detaliu principiul de lucru al fiecărei echipe și sintaxa lor, dar nu se menționează dificultățile care pot apărea în practică în timpul utilizării. Acest material va fi dedicat examinării unora dintre ele.
Înainte de a continua, este necesar să reamintim din nou în detaliu scopul fiecărei funcții. Vom fi mai interesați de doi operatori: Inserare și Actualizare, deoarece din acestea principalele dificultăți apar atunci când se prelucrează cantități mari de date.
Începeți cu comanda Inserare, și apoi treci ușor la Actualizare. MySQL Sistemul, ca orice alt DBMS modern, utilizează operația Inserare pentru a adăuga intrări noi la existentetabele de baze de date. Sintaxa acestei operațiuni este foarte simplă și simplă. Acesta conține o enumerare a câmpurilor în care vor fi introduse valorile, destinația - numele tabelului - și lista de intrări direct. La fiecare executarea comenzii Inserare Baza de date va fi actualizată cu valori noi.
Cu toate acestea, în practică apar destul de desSituația este că pentru un set de date, una sau mai multe valori de atribute trebuie să fie actualizate. De exemplu, putem menționa situația în care întreprinderea a suferit o reformă cu redenumirea ulterioară a principalelor departamente. În acest caz, este necesar să se facă schimbări pentru fiecare departament. Dacă se modifică numai numele, atunci problema este rezolvată foarte repede. Dar dacă se modifică codificarea fiecărei componente a întregii producții, care, de regulă, servește drept cheie primară, aceasta implică, la rândul său, schimbări în informație și pentru fiecare angajat.
Pentru a rezolva problema în cauză, poate fi aplicată Operatorul DML - Actualizare. MySQL-server, care funcționează cu un număr mare de înregistrări,cu ajutorul operatorului de actualizare, să execute interogarea solicitată și să rezolve problema. Dar, uneori, în timpul actualizării, nu sunt dificil de înțeles și dificil de explicat. Este vorba despre complexitatea actualizării înregistrărilor care vor fi discutate mai târziu.
Comanda Actualizare, după cum sa menționat mai sus,Folosit pentru actualizarea înregistrărilor existente într-un tabel. Dar, în practică, clienții care accesează serverele de baze de date nu sunt întotdeauna cunoscuți, există un anumit set de date în tabele sau nu. Verificarea preliminară a disponibilității datelor în baza de date pentru actualizările ulterioare duce la costuri de timp și la utilizarea risipă a capacităților serverului.
Pentru a preveni acest lucru, DBMS are un design special MySQL - Introduceți * Actualizare, în care poate fi inserată sau actualizatăindependente unul față de celălalt. Adică, atunci când există o intrare pentru o anumită condiție în tabel, va apărea o actualizare. Dacă datele despre condiția în cauză nu sunt găsite, serverul MySQL va putea să efectueze solicitarea de adăugare de date.
O componentă importantă a acestui lucru Inserare-interogare în sistemul de gestionare a bazelor de date MySQL - "Despre actualizarea cheii duplicate" console. Sintaxa completă a interogării este după cum urmează: "introduceți în valorile test_table (employer_id, name) (1, "Abramov") pe actualizarea duplicat cheie last_modified = NOW ();“.
O astfel de cerere poate fi folosită pentruînregistrarea acțiunilor angajaților, de exemplu, stabilirea timpului de trecere a întreprinderii de intrare, cu calculul ulterior al perioadei de rupere și identificarea întârzierilor. Pentru a nu introduce mai multe înregistrări în tabel, este suficient ca fiecare angajat să țină înregistrări cu o actualizare permanentă. Este designul verificării duplicatului care vă permite să faceți acest lucru.
Având în vedere exemplul de mai sus de înregistrare a acțiunilor angajaților la punctul de control, utilizarea autogenerării (auto_creștere), care sunt de obicei folosite pentru a umple valorile cheilor primare (primar_cheie). Când utilizați comanda Actualizare MySQL în construcția cu Inserare auto_creștere, câmpurile sunt în continuă creștere.
În mod similar, totul se întâmplă cândDesignul de înlocuire este utilizat, în cazul detectării duplicatelor. Valoarea "Autoincrementală" crește chiar și atunci când nu este necesară. Din acest motiv, există probleme cu valori lipsă sau depășire a intervalului, ceea ce duce ulterior la perturbarea performanței sistemelor de gestionare a bazelor de date.
Problema ar trebui luată în considerare webdezvoltatori, deoarece acestea sunt cele mai frecvente în sistemele multi-utilizator (site-uri internet, portaluri etc.), când se efectuează un număr mare de proceduri în sistem Inserare și Actualizați MySQL.
PHP-apelurile către baza de date sunt foarte des efectuate. Prin urmare, realizarea valorii maxime pe câmpuri definite ca auto_increment, are loc rapid, iar atunci când se analizează dificultățile întâmpinate, este imposibil să se stabilească motivele imediat.
Prin urmare, dezvoltatorii sunt sfătuiți să abordeze cu atenție utilizarea structurii pe cheia duplicat în echipă actualizare mysql. selectați - interogări la accesarea serverului bazei de dateva funcționa fără erori, dar adăugarea de noi înregistrări în baza de date este plină de situații neplăcute, ceea ce duce ulterior la probleme serioase. Ca alternativă, este recomandat ca câmpurile autoincremente să verifice inițial disponibilitatea înregistrărilor pentru ele și apoi să le actualizeze.
</ p>