23 links
tagged with all of: postgresql + performance
Click any tag below to further narrow down your results
Links
PostgreSQL 18, set for release in September, introduces features aimed at enhancing analytics capabilities and distributed architectures, including a new asynchronous I/O subsystem that significantly boosts performance for analytical workloads. The update also upgrades UUIDs to version 7 to improve database index performance in distributed systems, although some anticipated SQL features will be delayed. Despite its growing popularity among developers, PostgreSQL has traditionally been more associated with online transaction processing rather than analytics.
The article compares the performance of ClickHouse and PostgreSQL, highlighting their strengths and weaknesses in handling analytical queries and data processing. It emphasizes ClickHouse's efficiency in large-scale data management and real-time analytics, making it a suitable choice for high-performance applications.
Efficient storage in PostgreSQL can be achieved by understanding data type alignment and padding bytes. By organizing columns in a specific order, one can minimize space waste while maintaining or even enhancing performance during data retrieval.
PostgreSQL 18 introduces significant improvements to the btree_gist extension, primarily through the implementation of sortsupport, which enhances index building efficiency. These updates enable better performance for use cases such as nearest-neighbour search and exclusion constraints, offering notable gains in query throughput compared to previous versions.
The article delves into the challenges of optimizing a Just-In-Time (JIT) compiler for PostgreSQL, particularly in the context of modern CPU architectures. It explains the importance of out-of-order execution and branch prediction in enhancing performance, and highlights specific optimization techniques that can be applied to the PostgreSQL interpreter to improve execution speed.
PostgreSQL 18 has been released, featuring significant performance improvements through a new asynchronous I/O subsystem, enhanced query execution capabilities, and easier major-version upgrades. The release also introduces new features such as virtual generated columns, OAuth 2.0 authentication support, and improved statistical handling during upgrades, solidifying PostgreSQL's position as a leading open source database solution.
The article discusses performance improvements in pgstream, a tool used for taking snapshots of PostgreSQL databases. It highlights the underlying challenges and solutions implemented to enhance the speed and efficiency of database snapshots, ultimately benefiting users with faster data access and reduced operational overhead.
PostgreSQL's full-text search (FTS) can be significantly faster than often perceived, achieving a ~50x speed improvement with proper optimization techniques such as pre-calculating `tsvector` columns and configuring GIN indexes correctly. Misleading benchmarks may overlook these optimizations, leading to an unfair comparison with other search solutions. For advanced ranking needs, extensions like VectorChord-BM25 can further enhance performance.
The article explores the use of custom ICU collations with PostgreSQL's citext data type, highlighting performance comparisons between equality, range, and pattern matching operations. It concludes that while custom collations are superior for equality and range queries, citext is more practical for pattern matching until better index support for nondeterministic collations is achieved.
SELECT FOR UPDATE in PostgreSQL is often misused, leading to unnecessary row-level locking that can severely impact application concurrency and performance. Developers are encouraged to opt for FOR NO KEY UPDATE instead, as it aligns better with typical update scenarios and prevents deadlocks. Properly managing lock levels according to actual data manipulation needs can significantly enhance system efficiency.
PostgreSQL v18 introduces the ability to preserve optimizer statistics during major upgrades, enhancing performance and reducing downtime. This feature allows users to export optimizer statistics with `pg_dump` and ensures that statistics remain intact when using `pg_upgrade`, streamlining database upgrades.
Pgline is a high-performance PostgreSQL driver for Node.js, developed in TypeScript, that implements Pipeline Mode, allowing for efficient concurrent queries with reduced CPU usage. Benchmark tests show Pgline outperforms competitors like Bun SQL, Postgresjs, and Node-postgres in terms of speed and resource efficiency. Installation and usage examples are provided to demonstrate its capabilities.
Pipelining in PostgreSQL allows clients to send multiple queries without waiting for the results of previous ones, significantly improving throughput. Introduced in PostgreSQL 18, this feature enhances the efficiency of query processing, especially when dealing with large batches of data across different network types. Performance tests indicate substantial speed gains, underscoring the benefits of utilizing pipelining in SQL operations.
A comparison of various PostgreSQL versions reveals transaction performance, latency, and transactions per second (TPS) metrics. The data highlights that PostgreSQL version 18 achieves the highest transaction count and TPS, while version 17 shows the lowest performance in these areas. Overall, the newer versions generally perform better in terms of latency and transaction efficiency.
PostgreSQL's Index Only Scan enhances query performance by allowing data retrieval without accessing the table heap, thus eliminating unnecessary delays. It requires specific index types and query conditions to function effectively, and the concept of a covering index, which includes fields in the index, further optimizes this process. Understanding these features is crucial for backend developers working with PostgreSQL databases.
Selecting the right storage option in PostgreSQL can significantly affect performance and data management. This article explores various storage methods, including heap and columnar storage, CSV, and Parquet files, highlighting their advantages and use cases for efficient data archiving and retrieval.
Data types significantly influence the performance and efficiency of indexing in PostgreSQL. The article explores how different data types, such as integers, floating points, and text, affect the time required to create indexes, emphasizing the importance of choosing the right data type for optimal performance.
Properly collecting optimizer statistics for partitioned tables in PostgreSQL is crucial for accurate query planning and execution performance. The article discusses the significance of these statistics, how they differ from partition statistics, and the role of the `ANALYZE` command in enhancing query efficiency.
PostgreSQL 18 introduces asynchronous I/O (AIO), enhancing storage utilization and performance. The article provides tuning advice for two key parameters, io_method and io_workers, highlighting that while io_method defaults to worker for broad compatibility, increasing io_workers beyond the default of three can significantly improve performance on larger machines. Trade-offs between different AIO methods and their impact on performance are also discussed.
PostgreSQL's performance can significantly benefit from having an adequate amount of RAM, particularly through the management of its shared buffers. Understanding the clock sweep algorithm and how buffer eviction works is crucial for optimizing memory settings, especially in systems with large RAM capacities. Proper sizing of the shared buffer, typically recommended at 25% of total RAM, is essential for achieving optimal database performance.
The article discusses the importance of testing rules in PostgreSQL to ensure data integrity and performance. It highlights various strategies and best practices for implementing effective testing frameworks within PostgreSQL environments.
Understanding when to rebuild PostgreSQL indexes is crucial for maintaining database performance. The decision depends on index type, bloat levels, and performance metrics, with recommendations to use the `pgstattuple` extension to assess index health before initiating a rebuild. Regular automatic rebuilds are generally unnecessary and can waste resources.
Flame graphs visually represent where a program consumes processing time, utilizing sampled call stack data collected by a profiler. This blog post discusses the creation and use of flame graphs for diagnosing performance bottlenecks in PostgreSQL, detailing methods for data collection and processing, and highlighting the importance of build types in profiling.