sql >> Databasteknik >  >> RDS >> PostgreSQL

Långsam ELLER-sats i postgresql

Helt nytt tillvägagångssätt. Din where skicket är på två bord, men det verkar onödigt.

Den första ändringen skulle vara:

where a1_.id = 1136 or a1_.parent_id = 1136

Jag tror att strukturen du vill ha är en skanning av kategoritabellen och sedan hämtar från annonstabellen. Som hjälp kan du skapa ett index på advert(advert_category_id, created_date) .

Jag skulle bli frestad att skriva frågan genom att flytta where klausul till en underfråga. Jag vet inte om detta skulle påverka prestandan:

SELECT a0_.id AS id0
FROM   advert a0_ INNER JOIN
       (select ac.*
        from advertcategory ac
        where ac.id = 1136 or ac.parent_id = 1136
       ) ac
       ON a0_.advert_category_id = ac.id
ORDER  BY a0_.created_date DESC
LIMIT  15;  


  1. Den ökända java.sql.SQLException:Ingen lämplig drivrutin hittades

  2. Konvertera Unixtime till Datetime SQL (Oracle)

  3. Postgresql-kolumnen hittades inte, men visas i Beskriv

  4. MySQL-fel #1005 (kod 150)