sql >> Databasteknik >  >> RDS >> Mysql

BESTÄLL EFTER skick

UNION betyder UNION DISTINCT och detta är relativt långsamt eftersom det kommer att leta efter dubbletter även om det inte kommer att finnas några. Du vill ha UNION ALLA:

SELECT *, 0 AS head FROM foo WHERE id IN (1,2,3) 
UNION ALL
SELECT *, 1 AS head FROM foo WHERE id NOT IN (1,2,3)
ORDER BY head, created_date

Jag kan föreställa mig att det efter denna förändring inte är mycket skillnad i prestanda mellan de tre frågorna. Det bästa sättet att vara säker är att mäta det.



  1. Behöver få ut produktdata från mysql-databasen

  2. Hur man skapar SQL-spår för att fånga SQL Server-händelser

  3. Hur man visar aktuella anslutningar i MySQL Workbench med hjälp av GUI

  4. Kontrollera om det finns ett värde i Postgres-arrayen