PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Interval pencocokan PostgreSQL antara waktu mulai dan waktu berakhir dengan stempel waktu

Ada "postgres sementara" (google it) tapi saya tidak tahu apakah itu masih dipertahankan ... Saya percaya ada diskusi untuk memasukkan jenis pencarian ini ke dalam postgres tapi saya tidak ingat status akhirnya. Pokoknya :

Contoh menggunakan kotak dan inti :

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

Seperti yang Anda lihat, indeks inti sangat cepat di sini (1500 kali ! lol)(dan Anda dapat menggunakan banyak operator seperti tumpang tindih, berisi, berisi, dll.

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. Rails dan PostgreSQL:Peran postgres tidak ada

  2. Verifikasi koneksi database dengan pg-promise saat memulai aplikasi

  3. Tulis kerangka data panda cepat ke postgres

  4. Postgres adalah database paling keren – Alasan #1:Pengembang menyukainya!

  5. Hasilkan nomor acak dalam kisaran 1 - 10