sql >> Database >  >> RDS >> Database

Hoe SQL-query's te versnellen

Het is belangrijk om SQL-query's te versnellen om ervoor te zorgen dat uw websites en applicaties snel werken en een goede klantervaring bieden. Hier zijn enkele tips om databasequery's te versnellen en de queryprestaties te verbeteren.


SQL-query's versnellen

Hier zijn enkele belangrijke manieren om de snelheid en prestaties van SQL-query's te verbeteren.


1. Gebruik kolomnamen in plaats van SELECT *

Gebruik bij het gebruik van SELECT-instructies alleen de kolommen die u nodig hebt in uw resultaat, in plaats van SELECT * from … Dit zal de grootte van het resultaat aanzienlijk verkleinen en uw SQL-query versnellen.

Bonus lezen:hoe u het maximale aantal verbindingen in MySQL kunt vergroten

2. Vermijd geneste zoekopdrachten en weergaven

Wanneer u een query/view in een andere query/view nest, resulteert dit in veel gegevensteruggave voor elke afzonderlijke query en vertraagt ​​uw query aanzienlijk. Soms kan de databaseserver zelfs een time-out hebben en niets retourneren.


3. Gebruik het IN-predikaat bij het doorzoeken van geïndexeerde kolommen

Gebruik bij het opvragen van een geïndexeerde kolom een ​​IN-lijstpredikaat in plaats van wiskundige operatoren zoals '=' of logische operatoren zoals AND/OR. Het IN-predikaat kan uw SQL-query's versnellen, aangezien de query-optimizer de IN-lijst sorteert zodat deze overeenkomt met de sorteervolgorde van INDEX, wat leidt tot snellere resultaten.

Bonus lezen:UTF8-tekens opslaan in MySQL

4. Pre-enscenering doen

Als je queries en procedures hebt die wel joins maken met grote tabellen, is het aan te raden om een ​​aparte tabel te maken met dit resultaat. Wanneer u tabellen van tevoren samenvoegt, werken de SQL-query's die hun resultaat gebruiken veel sneller.


5. Tijdelijke tabellen gebruiken

Evenzo, als u een grote tabel samenvoegt met een kleine, maakt u een tijdelijke tabel die alleen gegevens bevat die nodig zijn voor het samenvoegen met de kleinere tabel. U kunt dit doen door gegevens uit een grote tabel te selecteren, deze over te brengen naar een tijdelijke tabel en de kleine tabel samen te voegen met deze tijdelijke tabel.

Bonus lezen:PostgreSQL gematerialiseerde weergave

6. Gebruik CASE in plaats van UPDATE

UPDATE-instructie duurt langer dan CASE-instructie vanwege logboekregistratie. Aan de andere kant bepaalt de CASE-instructie wat er moet worden bijgewerkt en worden uw SQL-query's sneller.


7. Vermijd het gebruik van GUID

Vermijd het gebruik van wereldwijd unieke ID's, omdat deze uw zoekopdrachten kunnen vertragen. Gebruik in plaats daarvan DATE of IDENTITY.

Bonus lezen:database wijzigen in UTF8

8. Vermijd het gebruik van OR in JOINS

JOINS zijn tijdrovend omdat uw database elke rij moet onderzoeken op een overeenkomst. Als u ook de OR-voorwaarde in een JOIN gebruikt, duurt het dubbel zo lang voordat uw database overeenkomt met records. Zoals eerder vermeld, gebruik in plaats daarvan de IN-operator.


Hopelijk helpen de bovenstaande tips je om SQL-query's te versnellen.

  1. Geen enkele vorm van databasecaching om dubbele databasequery's te verminderen.

  2. Geparametriseerde queries met psycopg2 / Python DB-API en PostgreSQL

  3. Prestaties van MariaDB Java Connector-stuurprogramma

  4. Tabel- en kolomnamen definiëren als argumenten in een plpgsql-functie?