sql >> Database teknologi >  >> RDS >> PostgreSQL

Postgres ignorerer et tidsstempelindeks, hvorfor?

Lad os prøve noget andet. Jeg foreslår kun dette som et "svar" på grund af dets længde, og du kan ikke formatere en kommentar. Lad os gribe forespørgslen modulært an som en række undergrupper, der skal gennemskæres. Lad os se, hvor lang tid det tager hver af disse at udføre (rapporter venligst). Erstat dine tidsstempler for t1 og t2. Bemærk, hvordan hver forespørgsel bygger på den foregående, hvilket gør den foregående til en "inline-visning".

EDIT:Bekræft også kolonnerne i netværkstabellen.

1

 select PM.receiver_id from private_messages PM
 where PM.create_at between (t1 and t2)

2

 select U.id, U.network_id from users U
 join
 (
   select PM.receiver_id from private_messages PM 
   where PM.create_at between (t1 and t2)
 ) as FOO
 on U.id = FOO.receiver_id

3

select N.* from networks N
join
(
select U.id, U.network_id from users U
 join
 (
   select PM.receiver_id from private_messages PM 
   where PM.create_at between (t1 and t2)
 ) as FOO
 on U.id = FOO.receiver_id
) as BAR
on N.id = BAR.network_id


  1. MySQL ::Kør SQL-sætning i Variable

  2. MySQL:slet alle rækker, ikke bare opdateret

  3. Hvad er erstatningen for uniqueidentifier i Mysql

  4. Hibernate @SQLInsert og On Duplicate Key