sql >> Database >  >> RDS >> PostgreSQL

Postgres negeert een tijdstempelindex, waarom?

Laten we eens iets anders proberen. Ik suggereer dit alleen als een "antwoord" vanwege de lengte en je kunt een opmerking niet opmaken. Laten we de query modulair benaderen als een reeks subsets die elkaar moeten doorsnijden. Laten we eens kijken hoe lang het duurt om elk van deze uit te voeren (gelieve te rapporteren). Vervang uw tijdstempels door t1 en t2. Merk op hoe elke zoekopdracht voortbouwt op de vorige, waardoor de vorige een "inline view" wordt.

EDIT:bevestig ook de kolommen in de tabel Netwerken.

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. Hoe gebruikersrechten in MySQL Workbench te controleren met behulp van de GUI

  2. Is de Ltree-module van PostgreSQL geschikt voor opmerkingen met threads?

  3. Kloon een record en gebruik vervolgens de auto-increment-id voor verdere bewerkingen

  4. standaard een kolom met lege tekenreeks