sql >> Database >  >> RDS >> Mysql

Top 10 best practices in MySQL

MySQL is het op één na meest gebruikte open-source relationele databasebeheersysteem ter wereld. Het is zo populair geworden vanwege zijn consistente snelle prestaties, hoge betrouwbaarheid en gebruiksgemak. Dit artikel presenteert enkele van de best practices in MySQL.

Beste praktijken in MySQL

1. Gebruik altijd het juiste datatype

Gebruik datatypes op basis van de aard van de data. Als u irrelevante datatypes gebruikt, kan dit meer ruimte in beslag nemen of tot fouten leiden.
Voorbeeld:Het gebruik van varchar (20) om datum-tijdwaarden op te slaan in plaats van DATETIME-gegevenstype zal leiden tot fouten tijdens datum-tijd-gerelateerde berekeningen en er is ook een mogelijk geval van het opslaan van ongeldige gegevens.

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

Als u een enkel teken tekent, gebruik dan CHAR(1) in plaats van VARCHAR(1) omdat VARCHAR(1) extra byte nodig heeft om informatie op te slaan

3. Gebruik het CHAR-gegevenstype om alleen gegevens met een vaste lengte op te slaan

Voorbeeld:het gebruik van char(1000) in plaats van varchar(1000) zal meer ruimte in beslag nemen als de lengte van de gegevens kleiner is dan 1000

4. Vermijd het gebruik van regionale datumnotaties

Als u het datatype DATETIME of DATE gebruikt, gebruik dan altijd de YYYY-MM-DD-datumnotatie of ISO-datumnotatie die past bij uw SQL Engine. Andere regionale formaten zoals DD-MM-YYY, MM-DD-YYYY worden niet correct opgeslagen.

5. Indexsleutelkolommen

Zorg ervoor dat u de kolommen indexeert die worden gebruikt in JOIN-clausules, zodat de query het resultaat snel retourneert.
Als u de UPDATE-instructie gebruikt die meer dan één tabel omvat, zorg er dan voor dat alle kolommen die worden gebruikt om de tabellen samen te voegen, zijn geïndexeerd

6. Gebruik geen functies over geïndexeerde kolommen

Het gebruik van functies over geïndexeerde kolommen verslaat het doel van de index. Stel dat u gegevens wilt krijgen waarbij de eerste twee tekens van de klantcode AK zijn, schrijf niet
SELECT kolommen FROM tabel WHERE left (customer_code,2)='AK'
maar herschrijf het met
SELECT kolommen FROM tabel WHERE customer_code zoals 'AK%'
die gebruik zal maken van index wat resulteert in een snellere responstijd.

7. Gebruik SELECT * alleen indien nodig

Gebruik SELECT * niet zomaar blindelings in de code. Als er veel kolommen in de tabel staan, worden ze allemaal geretourneerd, wat de reactietijd vertraagt, vooral als u het resultaat naar een front-endtoepassing stuurt.
Typ expliciet de kolomnamen die echt nodig zijn.

8. Gebruik ORDER BY-clausule alleen indien nodig

Als u het resultaat in front-end applicatie wilt tonen, laat het dan de resultatenset BESTELLEN. Als u dit in SQL doet, kan dit de reactietijd in de omgeving met meerdere gebruikers vertragen.

9. Kies de juiste database-engine

Als u een applicatie ontwikkelt die data vaker leest dan schrijft (bijv:zoekmachine), kies dan voor MyISAM storage engine.
Als u een applicatie ontwikkelt die data vaker schrijft dan leest (bijv:realtime banktransacties), kies INNODB-opslagengine.
Het kiezen van een verkeerde opslagengine heeft invloed op de prestaties

10. Gebruik de EXISTS-clausule waar nodig

Als u het bestaan ​​van gegevens wilt controleren, gebruik dan niet
If (SELECT count(*) from Table WHERE col='some value')>0
gebruik in plaats daarvan de EXISTS-clausule
If EXISTS(SELECT * from Table WHERE col='some value')
wat sneller is in reactietijd.


  1. STRING_SPLIT() in SQL Server 2016:vervolg #2

  2. Verschil tussen datetime en timestamp in sqlserver?

  3. Coalesce-functie gebruiken in Oracle

  4. Wat zijn de use-cases voor het selecteren van CHAR boven VARCHAR in SQL?