PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Postgres ignoruje indeks znacznika czasu, dlaczego?

Spróbujmy czegoś innego. Sugeruję to tylko jako "odpowiedź" ze względu na jej długość i nie można sformatować komentarza. Podejdźmy do zapytania modułowo jako serii podzbiorów, które muszą się przeciąć. Zobaczmy, ile czasu zajmie wykonanie każdego z nich (proszę zgłosić). Zastąp swoje znaczniki czasu dla t1 i t2. Zwróć uwagę, jak każde zapytanie bazuje na poprzednim, co sprawia, że ​​poprzednie jest „widokiem wbudowanym”.

EDYCJA:również proszę potwierdzić kolumny w tabeli Sieci.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Znajdowanie pozycji wartości w tablicach PostgreSQL

  2. Błąd podczas uruchamiania migracji na Heroku, PostgreSQL z Rails 5

  3. Wybierz tylko liczbową część ciągu tylko wtedy, gdy zaczyna się od wartości liczbowej

  4. Połączenie z lokalnym hostem Postgresql - połączenie odrzucone

  5. Jak wykonać wiele złączeń z różnymi parametrami w jednym zapytaniu?