Teable is a no-code database built on Postgres. It uses a simple, spreadsheet-like interface to create enterprise-level database applications.
Monday, April 29, 2024Postgres installations consist of binaries and a data directory, allowing for easy setup of multiple instances on a server. A new instance can be created by setting up a new data directory and using the "pg_ctl" command. Existing data can be quickly populated into a new instance by cloning from a stable instance using the "pg_basebackup" command.
This article compares different full text search (FTS) options for Postgres databases, focusing on Elasticsearch and Postgres' native FTS. While Postgres FTS is simple and real-time, it lacks features and performs poorly on large datasets. Elasticsearch requires ETL pipelines, leading to data freshness issues and operational overhead. The article introduces and compares alternative search engines like Algolia, Meilisearch, ParadeDB, and Typesense.
Postgres today is powerful enough to be the default choice for new applications requiring persistent data storage. NoSQL databases like DynamoDB, Cassandra, and MongoDB are not recommended for applications requiring high scalability and specific access patterns because data modeling gets too complex and analytics is tough. This article goes through other alternatives, like Oracle DB and Kafka, to show how Postgres is better.
It's better to use identity columns instead of using the serial data type in Postgres. This is because `serial` has several issues, like permission complexities, a lack of integrity guarantees, and awkward ergonomics. Identity columns provide a better way to manage auto-incrementing primary keys and are also compliant with the SQL standard.
Postgres Write-Ahead Logs (WAL) are needed for logical replication in Postgres. WAL works by storing each state change as a command in an append-only file before the change is actually made to the database, allowing for recovery from the last checkpoint in case of a crash. WAL offers various configurable parameters like `wal_level`, `fsync`, `wal_buffers`, and `checkpoint_flush_after` to optimize performance and control data retention.