PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Интервал за съвпадение на PostgreSQL между началния и крайния час спрямо времевата марка

Имаше "temporal postgres" (google it), но не знам дали все още се поддържа... Вярвам, че имаше дискусия за включване на този тип търсене в postgres, но не помня окончателното му състояние. Както и да е :

Пример за използване на кутия и същност :

CREATE TABLE segments( start INTEGER NOT NULL, stop INTEGER NOT NULL, range_box BOX NOT NULL );
INSERT INTO segments SELECT n,n+1,BOX(POINT(n,-1),POINT(n+1,1)) FROM generate_series( 1, 1000000 ) n;
CREATE INDEX segments_box ON segments USING gist( range_box );
CREATE INDEX segments_start ON segments(start);
CREATE INDEX segments_stop ON segments(stop);

EXPLAIN ANALYZE SELECT * FROM segments WHERE 300000 BETWEEN start AND stop;
 Index Scan using segments_start on segments  (cost=0.00..12959.24 rows=209597 width=72) (actual time=91.990..91.990 rows=2 loops=1)
   Index Cond: (300000 >= start)
   Filter: (300000 <= stop)
 Total runtime: 92.023 ms

EXPLAIN ANALYZE SELECT * FROM segments WHERE range_box && '(300000,0,300000,0)'::BOX;
 Bitmap Heap Scan on segments  (cost=283.49..9740.27 rows=5000 width=72) (actual time=0.036..0.037 rows=2 loops=1)
   Recheck Cond: (range_box && '(300000,0),(300000,0)'::box)
   ->  Bitmap Index Scan on segments_box  (cost=0.00..282.24 rows=5000 width=0) (actual time=0.032..0.032 rows=2 loops=1)
         Index Cond: (range_box && '(300000,0),(300000,0)'::box)
 Total runtime: 0.064 ms

Както можете да видите, индексът на gist е абсурдно бърз тук (1500 пъти! хаха) (и можете да използвате много оператори като припокриване, съдържа, съдържа и т.н.

http://www.postgresql.org/docs/8.2/static/functions-geometry.html



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Настройка и поддръжка на PostgreSQL репликация с помощта на Ansible

  2. Пролетна конференция FLOSS UK

  3. [Видео] Ansible и PostgreSQL

  4. Създаване на настройка за репликация на PostgreSQL в Debian/Ubuntu

  5. Върнете нула, ако не бъде намерен запис