Mysql - de ce și de ce?

Cel mai probabil, ați auzit deja numele MySQL - dacă ați creat sau întreținut site-uri sau administrați servere care rulează pe Linux sau dacă dezvoltați diferite aplicații software corporative. Dar chiar dacă nu sunteți încă familiarizat cu acest produs extrem de puternic și convenabil - nu contează, atunci vă vom spune toate subtilitățile de a folosi și de a lucra cu MySQL.






Deci, MySQL - o bază de date relațională (RDBMS, sistem de management al bazei de date), sub licența GPL OpenSource (mai precis - sub licență dublă, este gratuit pentru software-ul OpenSource pentru taxa de aplicații comerciale).

Să abordăm mai întâi o secundă și să vedem ce alte baze de date sunt pe piață, deoarece majoritatea companiilor de software au o bază de date în arsenalul lor. Probabil, prima dintre cele întâlnite a fost Microsoft Access. Este un reprezentant tipic al bazelor de date "ușoare", perfect adaptate pentru uz casnic, pentru contabilizarea colecțiilor personale sau pentru o întreprindere mică pentru a automatiza munca de rutină. Pentru aplicații mai serioase, există "fratele mare" - Microsoft SQL Server - aproape totul este deja disponibil. Cu ușurința de prelucrare (- de la camere simple la matrice mari de text în unități și zeci de MB diferite de date, ceea ce înseamnă că fiecare coloană a unui tabel poate conține date arbitrare pot fi stocate în tabele) într-o chestiune de secunde, volumul bazei de date, în sute de mii sau milioane de rânduri. Aceste "greutăți" includ, de asemenea, baza de date IBM-DB2 și Oracle a companiei cu același nume. Deoarece aproape toate limbajele de programare utilizate pentru a crea aplicatii web care au construit-in-suport pentru aceste baze, fie direct, fie prin intermediul ODBC, vă pe baza bazei de date „industrie“ se bazează în principal portaluri de întreprinderi și servicii web, pentru care sarcina critică și necesită abilitatea de a lucra cu cantități mari de date. De exemplu, limbajul PHP poate lucra cu Sybase, PostgreSQL, MS SQL Server, Oracle, Informix, InterBase, Ingres precum și cu orice altă bază de date prin intermediul interfeței ODBC.

MySQL nu este singur pe piață ... Există încă o categorie de DBMS "mediu" - atât în ​​ceea ce privește prețul, cât și caracteristicile care diferă de cele descrise mai sus. Acest exemplu, Borland Interbase, MS Access, PostgreSQL și un subiect special al conversației noastre - MySQL. Aceste baze de date sunt destul de simple de învățat și programate, ieftine sau complet gratuite și sunt excelente pentru crearea de aplicații diverse (atât tradiționale cât și web) în care nu este necesară fiabilitatea și stabilitatea spațiului.

ci pe un număr de parametri de cei mai buni! De ce spune în mod specific despre MySQL? Pentru că este gratuit (GPL OpenSource)? Nu numai. Deoarece este foarte mic pentru dimensiunea bazei de date (un total de 25 - 30 MB de distribuție, în contrast cu CD-ul întreg MS SQL Server, sau o sută cincizeci MB MS Access)? De asemenea, nu. Deoarece este foarte rapid (mai ales cu privire la operațiunile de lectură atunci când pepenele galben este citit din tabel și afișat ca răspuns la o cerere de client - care este motivul pentru care baza de date a devenit popular în mediul Internet, în cazul în care este viteza de citire importantă)? Și acesta nu este cel mai important lucru. Sau poate pentru că este un produs foarte dinamic, rezultatul muncii a sute de așa-numita companie „virtuală“ MySQL AB (virtuale pentru că angajații nu stau în același birou, și împrăștiate în întreaga lume și este conectat în mod constant numai prin Internet)? Da, și asta, dar nu numai. Pentru a fi sincer, nu se angajează să spun ceea ce ma atras la ea în MySQL - doar o zi, am încercat să lucrez cu ea și am dat seama că de acum încolo toate proiectele mele de la orice scară se vor utiliza numai această bază de date - MySQL!

Există mai multe ramuri paralele ale dezvoltării. Acum, după ce ați determinat baza, puteți descărca versiunea necesară a bazei de date de la www.mysql.com. Aici trebuie să oprim și să clarificăm situația cu versiunile. Acum există mai multe versiuni ale MySQL în paralel:

  • stabil - MySQL 3.23.xx (și acum și sucursala 4.1.xx). Această versiune este testată de mulți și funcționează cu succes pe mii de servere, este recomandată pentru utilizarea în orice proiect;
  • beta în dezvoltare, este recomandat numai pentru învățarea și familiarizarea cu funcții noi. Anterior, toate versiunile de MySQL 4.xx.xx aveau statutul de beta.
  • gamma este următorul pas după beta, înseamnă că DBMS funcționează mai mult de o lună fără eșecuri semnificative (critice). În principiu, aceasta poate fi aplicată în siguranță, dar dezvoltatorii avertizează că această versiune este încă testată și că nu garantează că aceasta este perfectă.
  • alpha este doar pentru adevărații fani și dezvoltatori. Acum este MySQL 5.0.x. Există încă multe erori în versiunile alfa, însă puteți încerca deja să explorați caracteristicile și funcțiile care vor apărea în versiunile următoare.

Nu stiu despre tine, dar am descarcat imediat versiunea 5.0.0 (inca alfa). Pentru aproape un an de experimente, versiunea alfa nu a eșuat niciodată - totul funcționează ca un ceas. Poate că dezvoltatorii sunt prea reasigurați, dar principalul lucru este că funcționează foarte bine, astfel încât să puteți utiliza atât versiunile beta (filiala 5.x), cât și versiunile recent lansate ale MySQL 4.1.x. Pentru aplicații deosebit de exigente, aveți posibilitatea să utilizați versiuni 3.23.x lungi dovedite și stabile, dacă nu aveți nevoie de funcții speciale.

Imediat vă sfătuiesc să descărcați un program suplimentar pentru a facilita lucrul cu baza de date - Administrator MySQL. Despre acest utilitar și alte programe care simplifică în mod semnificativ lucrul cu baza de date, am scris deja - "Utilities-administratorii serverului MySQL".

Serverul de bază de date MySQL funcționează ca un program separat. Direct la ea nu se poate adresa - în acest scop există programe speciale. Una dintre ele este terminalul mysql - acceptă comenzi de la utilizator și sunt conectate printr-un server MySQL (care poate fi pe un alt calculator din rețeaua locală și pe server în Internet este, sau pe același calculator - nu contează, pentru tine, ca un utilizator este complet transparent) le trimite la executarea, preluarea rezultatului (de exemplu, datele selectate din baza de date, sau răspunsul serverului la finalizarea cu succes a acestei operațiuni sau a unui mesaj de eroare). Alte programe sunt libere să interacționeze direct cu serverul, un terminal de comandă nevoie doar pentru ca utilizatorul să comunice cu serverul.







Apropo, serverul MySQL afișează aproape imediat originea sa "non-Windows" - un simplu clic pe fișierul executabil mysqld-nt.exe nu este suficient pentru a începe. Cea mai ușoară modalitate este de a rula mai întâi orice utilitate grafică - MySQL Manager sau MySQL Administrator și apoi porniți sau opriți serverul. Problema este că pentru pornirea / oprirea serverului este necesar să specificăm mulți parametri diferiți, iar stocarea și tastarea lor de fiecare dată din linia de comandă este incomodă. Anterior, când nu existau utilitare, era necesar să se creeze comenzi rapide și să li se atribuie comenzi. Acum este mult mai ușor să gestionați serverul. Dar, totuși, cunoașterea comenzilor și a opțiunilor pentru rularea serverului este foarte utilă - cele mai importante comenzi sunt descrise în articolul "Run MySQL - de asemenea, trebuie să puteți"

Pentru fiecare dintre aceste grupuri de utilizatori are propriile programe, fiecare grup vede serverul MySQL în procesul de reducere și are nevoie de informații diferite pentru lucru. Desigur, dezvoltator de aplicații ar trebui să fie ghidată în serverul de management, dar nu este necesar să se meargă în labirintul de optimizare și de management de utilizator - pentru aceasta este administratorul bazei de date, care, la rândul său, aproape să nu interfereze cu structura tabelelor create de către dezvoltator, și să configurați numai setările de server și să monitorizeze pentru munca sa.

Să încercăm să aruncăm o privire scurtă asupra MySQL din poziția utilizatorului mediu, un administrator mic și un mic dezvoltator.

Din punctul de vedere al unui dezvoltator de aplicații de lucru cu MySQL este ca se conecteaza la serverul deschide o conexiune la baza de date specificată și să lucreze cu tabele în baza de date. Ea trebuie să cunoască parametrii conexiunii la server (în cazul în care serverul este pe același calculator, acesta este: gazda: localhost, port: 3306; conectare / parola este obținută de administrator, implicit este root cu o parolă gol), și numele bazei de date. Mai mult, toate interacțiunile cu tabelele au loc prin introducerea și executarea interogărilor SQL și procesarea rezultatelor returnate.

Un utilizator obișnuit cu această bază de servicii nu are practic nici o afacere, el poate lucra doar cu baza de date, iar pentru administrator, dimpotrivă, acesta este aproape un instrument de lucru de zi cu zi.

Acum MySQL suporta klasterizatsiyuChto îi unește pe toți utilizatorii care rulează bază de date (din nou, din nou, nu neapărat cu MySQL) - aceasta este principala limbă de comunicare cu serverul SQL - Structured Query Language. Există mai multe versiuni ale acestei limbi, MySQL încă acceptă sintaxa ANSI SQL 92 cu anumite limitări. Da, ar trebui să recunoaștem că baza de date MySQL nu este acceptată încă unele caracteristici și funcții care sunt definite în standardul SQL, sau sunt prezente în altă bază de date (în același Oracle sau MS SQL Server). Dar, pentru un motiv bun - unele funcții sunt necesare numai în dezvoltarea de clustere extrem de rezistente, altele un efect semnificativ asupra utilizării ratei sau a resurselor (dezvoltatorii MySQL au bazat întotdeauna pe viteza, asa ca este de multe ori a spus pur și simplu că acest lucru sau că funcția nu este activată, deoarece aceasta afectează rata) . Întrucât, de mult timp și acum unul dintre domeniile principale ale aplicației MySQL este dezvoltarea web și menținerea site-urilor web dinamice, această poziție a fost justificată și profitabilă. Dar, urmând tendința generală, dezvoltatorii de a aduce treptat împreună baza de date cu oportunități și MySQL «grele» - este versiunea 5.0 (si suport initial pentru clustering este implementată deja în versiunea curentă 4.1), care este încă în curs de dezvoltare, vă permite să construiască servere foarte puternice tolerante la defect, și pachetul MySQL Cluster Acesta va crea un server de baze de date cu fiabilitatea de 99,999% (5 minute de nefuncționare / an), care afișează imediat piața MySQL decizii corporative majore.

Soluțiile individuale din "DBMS grele" după testări lungi se încadrează în versiuni stabile. De exemplu, suport pentru tranzacții. O tranzacție este o serie de interogări secvențiale către o bază de date care sunt executate fie colectiv, fie deloc. În cazul în care prima cerere, introduce date într-un singur tabel, al doilea în altul, iar al treilea citește toate datele și procesele-l, apoi folosind tranzacția nu va fi niciodată o situație în care este deja introdus datele din primul tabel, iar al doilea este încă acolo, iar operația de citire deja efectuate și dă un rezultat fals. Dacă apare o eroare la o anumită tranzacție din tranzacție, atunci "răsturnarea" se face și datele rămân aceleași ca înainte de executarea tranzacției. Dar, dacă utilizați un server de baze de date în modul „default“, nu veți observa chiar noile caracteristici - acest lucru este esențial atunci când transferul de software și baze de date din versiunile anterioare ale bazei de date. Dacă într-adevăr trebuie să utilizați funcții noi - acest lucru se face manual, prin comenzi SQL sau opțiuni de server. De exemplu, suportul tranzacțiilor este introdus printr-un nou format de tabel - InnoDB. Implicit este formatul obișnuit al `MyISAM“, care este universal pentru toate versiunile de server (și platforme), și, dacă este necesar, pentru a avea acces la noi oportunități - te rog, aceasta se face setarea de opțiuni la crearea tabelului (CREATE TABLE după câmpul de descriere a noului tabel propunere scrisă TYPE = ). Acest mod de introducere a inovațiilor este foarte convenabil - este menținută compatibilitatea înapoi și noile posibilități sunt aplicate numai atunci când sunt într-adevăr necesare.

Orice tip de date își va lua locul în baza de date MySQL. Ar trebui să se spună despre tipurile de date pe care le suportă MySQL. Depinde de aceasta, ce date dezvoltatorul poate salva în baza de date. Desigur, prezenta datele numerice - ca numere întregi (TINYINT, MEDIUMINT, INT, BIGINT), și real, - (FLOAT, DOUBLE decimal). Pentru depozitare sau tipuri de linii sunt folosite și CHAR VARCHAR, până la 255 de caractere, sau TEXT, MEDIMTEXT, LONGTEXT arbitrare matrice de stocare de text. Pentru a stoca date binare utilizând aceleași tipuri - BLOB, MEDIUMBLOB, LONGBLOB - diferența dintre ele în caractere de sensibilitate caz, și de căutare full-text (care este acceptat pentru text și tipuri de derivate). Pentru a stoca data și ora, există tipuri DATE, TIME, DATETIME, TIMESTAMP și YEAR. Pentru tipurile enumerate ale căror valori sunt predefinite, există două opțiuni - SET și ENUM. Prin combinarea în tabel a câmpurilor tipurilor specificate și, dacă este necesar, prin utilizarea procesării software a datelor, puteți salva și gestiona aproape orice date.

Încă mai aveți dubii dacă DBMS MySQL ar trebui să fie folosit în dezvoltarea sa? Vă pot asigura că va face o treabă bună ca server corporativ. Sau credeți că MySQL nu poate rezista încărcăturii și pentru aplicația dvs. este mai bine să cumpărați o bază de date mai greoaie cum ar fi MS SQL Server sau Oracle? Să încercăm să vă convingem.

MySQL suportă mese de până la 512 GB și până la 60 de mii de tabele în baza de date MySQL sprijină într-adevăr lucrul cu bazele de date mari. De exemplu, dimensiunea tabelului poate ajunge la 512 GB (adică, Gigabyte). O dimensiune specifică a tabelului este determinată de sistemul de operare sub care rulează serverul (a se vedea tabelul prevăzut într-un singur fișier, astfel încât acesta poate limita dimensiunea maximă a sistemului de operare și de fișiere). Pentru platformele Intel (32 de biți) + dimensiune tabel Linux / Windows poate fi de până la 4 GB sau mai mult, iar aceste 512 GB pot fi obținute folosind Sun Solaris pe platforma UltraSPARC. Impresionant? clienții individuali MySQL AB ne-a spus că lucrează cu baze de date care conțin până la 60.000 de mese (!) într-o bază și până la 5 miliarde de înregistrări într-un tabel (!!). Și acum suportul MySQL Cluster va ridica această cifră și mai mult. Mai mult decât atât, chiar dacă sistemul de operare sau sistemul de fișiere nu acceptă fișiere de mari dimensiuni, puteți utiliza datele separate în două sau mai multe tabele în single - mai multe tabele (localizate fizic în mai multe fișiere) vor fi la nivelul bazei de date (în SQL-interogări) prelucrate și afișate ca o masă mare.

Link-uri conexe







Articole similare

Trimiteți-le prietenilor: