FAQs - Comparing to PostgreSQL
Why would I use TimescaleDB over vanilla PostgreSQL?
Read our TimescaleDB-PostgreSQL benchmarks:
To summarize, TimescaleDB offers:
- Ease-of-use: TimescaleDB is far easier to use because creating partitions (or what we call “chunks”) is automatically performed for the user. All of the complexity of automatic partitioning is abstracted away behind a “hypertable”, which users interact with just as they would with a PostgreSQL table.
- Much higher ingest scale: TimescaleDB sees throughput more than 20X that of PostgreSQL once tables reach moderate size (e.g., 10s of millions of rows). While vanilla PostgreSQL is suitable for time-series data at low volumes, it does not scale well to the volume of data that most time-series applications produce, especially when running on a single server. In particular, vanilla PostgreSQL has poor write performance for moderate tables, and this problem only becomes worse over time as data volume grows linearly in time. These problems emerge when table indexes can no longer fit in memory, as each insert will translate to many disk fetches to swap in portions of the indexes’ B-Trees. TimescaleDB solves this through its heavy utilization of time-space partitioning, even when running on a single machine. So all writes to recent time intervals are only to tables that remain in memory, and updating any secondary indexes is also fast as a result.
- Superior (or similar) query performance: Queries that can reason specifically about time ordering can be much more performant (1000s of times faster) in TimescaleDB. On single disk machines, at least, many simple queries that just perform indexed lookups or table scans are similarly performant between PostgreSQL and TimescaleDB.
- Much faster data deletion: To save space or to implement data retention policies, vanilla PostgreSQL requires expensive “vacuuming” operations to defragment the disk storage associated with such tables. TimescaleDB avoids vacuuming operations and easily enforces data retention policies by specifying the data you wish to be deleted that is older than a specified time period. For more information, see Data Retention.
- Extended time-oriented features: TimescaleDB includes time-series specific features not included in vanilla PostgreSQL and entirely unique to TimescaleDB (e.g.,
time_bucket
,first
andlast
), with more to come.
How compatible is TimescaleDB with PostgreSQL?
TimescaleDB is implemented as an extension to PostgreSQL that introduces transparent scalability and performance optimizations, as well as time-series specific features (e.g., arbitrary aggregations, data retention policies). TimescaleDB connects with any and all third party tools that communicate with standard PostgreSQL connectors. TimescaleDB supports the same extensions, tools and drivers that PostgreSQL supports. You can continue to run your existing PostgreSQL databases and work with your current visualization and reporting tools.
How does TimescaleDB handle geospatial data?
As an extension of PostgreSQL, TimescaleDB works well with PostGIS. For example, see our tutorial using PostGIS and TimescaleDB on NYC taxicab data.