sql >> Database teknologi >  >> RDS >> Mysql

Top 10 bedste praksis i MySQL

MySQL er det næstmest udbredte open source relationsdatabasestyringssystem i verden. Det er blevet så populært på grund af dets konsekvente hurtige ydeevne, høje pålidelighed og brugervenlighed. Denne artikel præsenterer nogle af de bedste fremgangsmåder i MySQL.

Bedste praksis i MySQL

1. Brug altid den rigtige datatype

Brug datatyper baseret på arten af ​​data. Hvis du bruger irrelevante datatyper, kan det optage mere plads eller føre til fejl.
Eksempel:Brug af varchar (20) til at gemme dato-tidsværdier i stedet for DATETIME-datatypen vil føre til fejl under dato-tids-relaterede beregninger, og der er også et muligt tilfælde af lagring af ugyldige data.

2. Brug CHAR (1) over VARCHAR(1)

Hvis du strenger et enkelt tegn, skal du bruge CHAR(1) i stedet for VARCHAR(1), fordi VARCHAR(1) vil tage ekstra byte for at gemme information

3. Brug CHAR datatype til kun at gemme data med fast længde

Eksempel:Brug af char(1000) i stedet for varchar(1000) vil forbruge mere plads, hvis længden af ​​data er mindre end 1000

4. Undgå at bruge regionale datoformater

Når du bruger DATETIME eller DATE datatype, brug altid ÅÅÅÅ-MM-DD datoformat eller ISO-datoformat, der passer til din SQL Engine. Andre regionale formater som DD-MM-ÅÅÅ, MM-DD-ÅÅÅÅ vil ikke blive gemt korrekt.

5. Indeks nøglekolonner

Sørg for at indeksere de kolonner, der bruges i JOIN-klausuler, så forespørgslen returnerer resultatet hurtigt.
Hvis du bruger UPDATE-sætning, der involverer mere end én tabel, skal du sikre dig, at alle de kolonner, der bruges til at forbinde tabellerne, er indekseret

6. Brug ikke funktioner over indekserede kolonner

Brug af funktioner over indekserede kolonner besejrer formålet med indekset. Antag, at du ønsker at få data, hvor de første to tegn i kundekoden er AK, skal du ikke skrive
SELECT kolonner FRA tabellen WHERE left (customer_code,2)='AK'
men omskriv den ved hjælp af
VÆLG kolonner FRA tabel WHERE kunde_kode som 'AK%'
som vil gøre brug af indeks, hvilket resulterer i hurtigere responstid.

7. Brug kun SELECT * hvis det er nødvendigt

Brug ikke blot blindt SELECT * i koden. Hvis der er mange kolonner i tabellen, vil alle blive returneret, hvilket vil sænke responstiden, især hvis du sender resultatet til en frontend-applikation.
Indtast udtrykkeligt de kolonnenavne, der faktisk er nødvendige.

8. Brug kun ORDER BY-klausul, hvis det er nødvendigt

Hvis du vil vise resultatet i frontend-applikationen, så lad det BESTILLE resultatsættet. Hvis du gør dette i SQL, kan det forsinke responstiden i flerbrugermiljøet.

9. Vælg den rigtige databasemotor

Hvis du udvikler en applikation, der læser data oftere end at skrive (f.eks. søgemaskine), skal du vælge MyISAM-lagringsmaskine.
Hvis du udvikler en applikation, der skriver data oftere end læsning (f.eks. banktransaktioner i realtid), vælg INNODB storage engine.
Valg af forkert storage engine vil påvirke ydeevnen

10. Brug EXISTS-klausulen, hvor det er nødvendigt

Hvis du vil kontrollere eksistensen af ​​data, skal du ikke bruge
If (SELECT count(*) from Table WHERE col='some value')>0
i stedet, brug EXISTS-sætning
Hvis EXISTS(SELECT * from Table WHERE col='some value')
som er hurtigere i responstid.


  1. Fremmednøgle til flere borde

  2. PLSQL JDBC:Hvordan får man sidste række-id?

  3. SQL opdatering top1 række forespørgsel

  4. Hvordan sletter man duplikerede poster?